PDA

View Full Version : فیبوناچی



oloom1386
چهارشنبه 06 آبان 1388, 10:58 صبح
سلام
می خوام جمله nام دنباله فیبوناچی واسم چاپ بشه.یه چیزایی نوشتم ولی موقع اجرا داخل حلقه که میره دیگه بیرون اومدنش با خداست و همه جملههای این دنباله رو می نویسه من فقط می خوام جمله nام نوشته شه
میشه اشکال این برنامه رو بهم بگین؟
این که i رو از3شروع کردم درسته؟چون جملات اول و دوم f1,f2 هستن




#include<stdio.h>
#include<conio.h>
main()
{
long int f1=1,f2=1,f3;
const int n=5;
int i=3;
clrscr();
printf("enter number:");
scanf("%d",&n);
// for(int i=3;i<=n;i++)
while(i<=n)
{
f3=f1+f2;
f1=f2;
f2=f3;
printf("\n%d",f3);
}
i++;
if (i==n)
printf("\n%d",f3);
getch();
return 0;
}

afi_program
چهارشنبه 06 آبان 1388, 15:06 عصر
دوست عزیز مقدار i راتوی حلقه while باید اضافه کنی نه بیرون اون!
و تابع printf را هم باید خارج حلقه بنویسی نه توی حلقه.
موفق باشی

karim orooji
جمعه 08 آبان 1388, 16:40 عصر
سلام دوست عزیز
در حلقه while که بیشتر از یه شرط که نمیشه قرار داد

smahdi1991
جمعه 08 آبان 1388, 17:47 عصر
سلام oloom1386 (http://barnamenevis.org/forum/member.php?u=106607) جون اصلا اون کانست کردن n و دوباره دریافت کردن n از کاربر از نظر منطقی اشتباه

shask00l
جمعه 08 آبان 1388, 18:34 عصر
من پیشنهاد میکنم از راه حل بازگشتی استفاده کنید .


int fib(int n){
if(n<=2) return(1); else return (fib(n-1)+fib(n-2));
}


این کد رو همین جا نوشتم اگه از نظر سینتکس مشکل داره اصلاحش کنید .

afi_program
دوشنبه 11 آبان 1388, 12:28 عصر
کاملا مخلفم.برای دنباله فیبوناچی راه حل بازگشتی یکی از بدترین راه هاست چون مقدار حافظه فوق العاده زیادی میگیره و زبان خیلی زیادی طول میکشه تا به جواب برسه که بدلیل محاسبات اضافی این اتفاق میافته .
اگه توضیحات کاملتری میخواین بگین تا توضیح بدم.
موفق باشی

shask00l
چهارشنبه 13 آبان 1388, 20:26 عصر
کاملا مخلفم.برای دنباله فیبوناچی راه حل بازگشتی یکی از بدترین راه هاست چون مقدار حافظه فوق العاده زیادی میگیره و زبان خیلی زیادی طول میکشه تا به جواب برسه که بدلیل محاسبات اضافی این اتفاق میافته .
اگه توضیحات کاملتری میخواین بگین تا توضیح بدم.
موفق باشی

حرف شما رو کاملا قبول دارم :تشویق:. مقدار خیلی زیادی حافظه مصرف میشه . ولی پیچیدگی کد در حد خیار ... میاد پایین .

قانون : هرجا کار برنامه نویس سخت تر باشه کار سیستم راهت تره و هرجا کار برنامه نویس ساده تر باشه کار سیستم سخت تر میشه .

پیروز و موفق باشید:چشمک:

afi_program
یک شنبه 17 آبان 1388, 10:46 صبح
با عرض پوزش بازم مخالفم چون ÷یچیدگی (چه حافظه چه زمانی)در بازگشتی فیبوناچی بیشتر از حالت عادیشه بخواین حساب میکنم.البته با اون بخش هرچی برنامه نویس راحتتر باشه سیستم ناراحتتره موافقم
موفق باشین

shask00l
دوشنبه 18 آبان 1388, 08:01 صبح
با عرض پوزش بازم مخالفم چون پیچیدگی (چه حافظه چه زمانی)در بازگشتی فیبوناچی بیشتر از حالت عادیشه بخواین حساب میکنم.
موفق باشین


حرف شما رو کاملا قبول دارم :تشویق:. مقدار خیلی زیادی حافظه مصرف میشه . ولی پیچیدگی کد در حد خیار ... میاد پایین .
پیروز و موفق باشید:چشمک:

حرف شما كاملا صحيحه
:چشمک:

alinaghiha
دوشنبه 18 آبان 1388, 09:26 صبح
شرط while رو با


while(f2<=n)

عوض كن درست ميشه
سري فيبوناجي كوچكتر از n

sat4iran
دوشنبه 18 آبان 1388, 09:37 صبح
سلام . من یه مشکل دارم
http://barnamenevis.org/forum/showthread.php?t=188684 مطلب در این تاپیک هست!
نیاز به کمک فوری دارم