PDA

View Full Version : سوال: فاکتوریل ماکزیمم



maryam9903
چهارشنبه 26 آذر 1393, 21:31 عصر
تابعی بنویسید که ورودی آنnبوده,nعددرادریافت کندوماکزیمم آن ها را محاسبه کند و بعد از محاسبه فاکتوریل ماکزیمم,جمع جملات فیبوناچی از جمله اول تا جمله فاکتوریل ماکزیمم را به عنوان خروجی بازگرداند؟برنامه به زبانC++‎‎‎
برنامه فیبوناچی این میشه:



#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#include <Conio.h>


using namespace std;


int main()


{


int b,r,a,c,d,f;


cout<<"chand ta donbale fiubunachi mikhahid?"<<endl;
cin>>d;


long int y[49];


y[1]=1;
y[2]=1;


for (int a=3;a<d+3;a++)


{


y[a]=0;


}


for (int a=3;a<d+3;a++)


{


y[a+1]=y[a]+y[a-1];
cout<<y[a+1]<<endl;


}


getch();
return 0;


}

برنامه فاکتوریل این میشه:



using namespace std;


int main()


{


unsigned long int d,max,a,b,c,x;


cout<<"faktoriel che adadi ra mikhahid hesab konid?"<<endl;
cout<<"faktoriel adad bozorgtar az 33 ra nemitavanad hesab konad."<<endl;


d=1;
cin>>a;


if (a>33)


{


cout<<"error."<<endl<<"lotfam addad kuchektar az 33 ra vared konid.";


getch();
goto esc;


}


for (int b=1;b<=a;b++)


{


d=d*b;


}


cout<<"faktoriel adad "<<a<<" mosavi ast ba "<<d;


getch();
esc:return 0;


}



ولی نمیدونم جواب سوال اصلی چی میشه!!!ممنون میشم کمک کنید

hatamiarash7
پنج شنبه 27 آذر 1393, 15:02 عصر
تابعی بنویسید که ورودی آنnبوده,nعددرادریافت کندوماکزیمم آن ها را محاسبه کند و بعد از محاسبه فاکتوریل ماکزیمم,جمع جملات فیبوناچی از جمله اول تا جمله فاکتوریل ماکزیمم را به عنوان خروجی بازگرداند؟برنامه به زبانC++‎‎‎‎‎‎‎
برنامه فیبوناچی این میشه:
ولی نمیدونم جواب سوال اصلی چی میشه!!!ممنون میشم کمک کنید

خدمت شما ولی برای اعداد بزرگ جواب نمیده چون خیلی عدد نهایی بزرگ میشه ... اون موقع باید از روش های دیگه استفاده کرد که یه خورده پیچیده است ....



#include "stdafx.h"
#include <iostream>
using namespace std;
long int fibo(long int n)
{
int a = 1, b = 0, c = 1, i = 0;
long int fibo = 0;
while (i < n)
{
i++;
c = a + b;
fibo += c;
a = b;
b = c;
}
return fibo;
}
long int fact(int n)
{
long int f = 1;
for (int i = 1; i <= n; i++)
f *= i;
return f;
}
int max(int n)
{
int i = 0, num, max;
cout << "Enter Number " << i + 1 << " : ";
i++;
cin >> num;
max = num;
for (int j = 0; j < n - 1; j++ , i++)
{
if (num>max)
max = num;
cout << "Enter Number " << i + 1 << " : ";
cin >> num;
}
return max;
}
int main()
{
int n, a, b, c;
cout << "How Many Numbers ? ";
cin >> n;
a = max(n);
b = fact(a);
c = fibo(b);
system("cls");
cout << c;
system("pause");
}