View Full Version : تابع برای دنباله فیبناچی
moh3en_f1
پنج شنبه 26 خرداد 1390, 21:08 عصر
سوال به این صورت هستش
تابعی که x رو بگیره تشخیص بده که از اعضای فیبانچی هستش یا نه؟
حالا سوال من اینه
برای این کار باید چی کار کنم ؟ باید اعداد فیبانچی رو تولید کنم بعد مقایسه کنم ؟ یا اینکه در حین تولید مقایسه کنم با اون عدد ؟ چه جوری میشه کاری کرد که وقتی عدد x رو رد کرد تابع فیبانچی دیگه ادامه پیدا نکنه ؟ الان من برنامه ای مربوط به فیبانچی رو نوشتم کجاش باید تغییرات ایجاد کنم ؟ لطفا کمک کنید
# include <iosteram.h>
fib(int n) {
if (n==1 || n==2)
return 1;
else return (fib(n-1)+fib(n-2));
rezaheidarida
پنج شنبه 26 خرداد 1390, 21:41 عصر
عزیز دل می تونی همچین برنامه ای بنویسی براش!
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int main() {
int k1=1 , k2=1 , n , m ;
cout<<"Enter number :";
cin>>n;
cout<<k1<<","<<k2<<",";
for (int i=0 ; i< n ; i++){
m=k1 + k2;
cout<<m<<",";
if (n == m ) {
cout<<endl<<endl<<"The number found !";
break;
}
if ( m > n ){
cout<<endl<<endl<<"The number not Found!";
break;
}
k1 = k2;
k2 = m;
}
getch();
return 0 ;
}
تا جایی که بلد بودم بهینه اش کردم!:چشمک:
mostafa-zare
جمعه 27 خرداد 1390, 03:30 صبح
شما n رو به تابع fib(n) می فرستید. n همون عددیه که تا اون می خواید فیبوناچی تولید بشه!
شما نمی خواد کاری کنید، به اون عدد که برسه خودش متوقف می شه ;)
moh3en_f1
جمعه 27 خرداد 1390, 09:05 صبح
ممنونم دوست من خیلی دقیق نوشته شده بود
فقط: سوال 1- using namespace std; این برای چی هستش؟
2- تابع getch(); چی کار می کنه؟
rezaheidarida
جمعه 27 خرداد 1390, 11:54 صبح
using namespace std;
برای به کار بردن cout و cin در زبان c باید از
using namespace std;
در ابتدای برنامه استفاده کنی!
اگر از این استفاده نکنی مجبوری قبل cout و cin از std:: استفاده کنی که وقت گیره!
تابع getch(); یه تابعی هست که یه کاراکتر را از ورودی می خونه ولی اون تو صفحه نمایش نمی ده!
این یه کلک رایج هست معمولا در اخر برنامه ها می زارن تا برنامه بعد از اجرا سریع محو نشه!
و بتونی محتویاتشو ببینی! و بعد از زدن یه کلیدی برنامه محو بشه!
البته تو بعضی از کامپایلر ها اینطوریه!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.