یکی از سوالات و تمرین هایی که اساتید برنامه نویسی به دانشجویان میدهند سوال : برنامه ای بنویسید که با استفاده از تابع بازگشتی حاصل ضرب دو عدد را محاسبه کند. در این پست میخواهیم جواب این سوال رو به صورت کد سی پلاس پلاس دهیم. در این سورس کد سعی شده که به صورت کاملا دقیق و بهینه ضرب دو عدد به صورت بازگشتی محاسبه شود.
سورس کد برنامه محاسبه ی ضرب دو عدد به صورت بازگشتی
#include<iostream> #include<conio.h> using namespace std; int zarb(int,int); int main() { int a,b; cout<<"enter two numbers:\n\n"; cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"\n\n"<<a<<'*'<<b<<'='; cout<<zarb(a,b); cout<<"\n\n"<<"press any key to exit..."; getch(); return 0; } //********** int zarb(int a,int b) { if(b==1) return a; else return a+zarb(a,b-1); } //> sourceiran.com
دیدگاه کاربران
تعداد دیدگاه های کاربران : 6 دیدگاهسلام وقتتون بخیر میشه قسمت int zarb که نوشتین با عدد مثال بزنین و توضیح بدین>
سلام
وقت بخیر
تابع zarb() یک تابع بازگشتی است که برای محاسبه حاصلضرب دو عدد بدون استفاده از عملگر ضرب استفاده میشود. این تابع دو آرگومان از نوع int به نامهای a و b میگیرد و حاصلضرب این دو عدد را به عنوان خروجی برمیگرداند.
بخشید میشه قسمت if اینارو هن توضیح بدین
بخش if در این کد برای بررسی این است که آیا b برابر با 1 است یا خیر. اگر b برابر با 1 باشد، آنگاه تابع zarb() فقط مقدار a را برمیگرداند. این به این دلیل است که ضرب یک عدد در 1، همان عدد است.
به عنوان مثال، اگر a برابر با 5 و b برابر با 1 باشد، آنگاه تابع zarb() مقدار 5 را برمیگرداند.
سلام همین تابع بازگشتی که برا ضرب دو عدد نوشتین همینو به زبان متلب مینویسین ؟
سلام
پیشنهاد میکنم خودتون بنویسید دوست عزیز