急求求c++编程高手,求50的阶乘,要求结果是精确的整数,打印在屏幕上。

限定用数组、指针、类和对象 这三种领域的范围内求解。提示:先想办法算48的阶乘 ,用数组去存得到的答案,48的阶乘算的出来,则就可算49的阶乘,(=49x48的阶乘)。同理就可以算出50的阶乘。这种算法才叫做精确。 注意还要打印在屏幕上。

第1个回答  2013-09-26
可以分成两段求:先求出35的阶乘,然后再求出36~50相乘的结果,之后再用大数乘法求得最终结果!//程序#include <cstdlib>
#include <iostream>using namespace std;int main(int argc, char *argv[])
{
int i;
long long result1 = 1, result2 = 36; for (i=2; i<=35; i++)
result1 *= i;
for (i=37; i<=50; i++)
result2 *= i;

cout<<"The multiply result of 1~35 is : "<<result1<<endl;
cout<<"The multiply result of 36~50 is : "<<result2<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}//运行结果:
第2个回答  2013-09-26
#include<iostream>
#include<cstdlib>using namespace std;void main()
{
double sum = 1;
for(double i = 1; i <= 50; ++i)
{
sum = sum * i;
}
cout << fixed << sum << endl;
system("pause");
}

c++求大数的阶乘要求精确值
=0) lenth++; } } printf("%d的阶乘:\\n 位数:%d\\n ",m,lenth); for(k=lenth;k>=1;k--) printf("%d",a[k]);}int main(){ BigFactorial(1000);}

用c++编写程序,输出0~30每个数的阶乘(包括0和30),要求输出精确解.
= 0) { a[++m] = carry; } } free(b); a[0] = m;}\/\/ 计算k!void write (int *a , int k){ printf("%4d! =", k); for(int i = a[0]; i > 0; i--) { printf("%d", a[i]); } printf("\\n");}void main(){ int ...

c++编程:编写一个函数,用来计算从键盘上输入的整数的阶乘。
int n;cout<<"请输入一个整数:";cin>>n;cout<<n<<"的阶乘为:"<<factorial(n)<<endl;system("Pause");return 1;}

c++用面向过程的方法编写程序输入一个整数N求N的阶乘
在程序中,首先使用`<iostream>`库中的`cin`对象从标准输入流(即键盘)获取一个整数N,然后使用for循环计算N的阶乘并将结果输出到标准输出流(即控制台)。

求一段c++的代码 是用来计算阶乘的 要求能够将比较大的数,比方说20的...
可以使用long long类型,是64位的int型,我帮你写个调用函数吧,主函数调用就可以了 long long func(int n){ long long sum = 1;for(int i = 1;i <= n;i++)sum *= i;return sum;}

求C++程序:用数组存1到1000的阶乘的结果,并每个数都打印出来
直接利用2L的代码,放到一个循环中即可.但因为输出太长了,DOS屏幕是显示不下的 include<iostream> using namespace std;int main(){ int a[100000],i,j;int n=1;while(n<=1000){ memset(a,0,sizeof(a));a[0]=1;int jin,count=1;for(i=1;i<=n;i++){ jin=0;for(j=0;j<count...

C++验证是否为整数的阶乘
include"iostream.h"int func(long int n){ long int b=1; \/\/b需要初始化为1,否则0乘以任何数都为0 for(int a=1;a<=n;a++){ b=b*a;if(n==b){ return a;} \/\/ else \/\/ { \/\/ return -1;\/\/ } } return -1; \/\/return -1需要在for循环执行完毕后,否则for循环中一次判断...

用c++编程——求大整数的阶乘(n>100)
define N 1000 \/\/要计算的N long s[N]={1,1},n=N,t=2,a=1,b=0;int main{ for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)s[a]=(b+=s[a]*t)%10000,b\/=10000;for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);return 0;...

用C++编写一个程序,用来计算一个不大于20的正整数的阶乘,并输出...
int main(){ int num;cin>>num;\/\/1!+2!+3!...要加到几就输入几 while(num<0){ cout<<"请输入大于0的正整数"<<endl;cin>>num;} if(num==0){ cout<<1<<endl;system("pause");return 0;} cout<<jiecheng(num);system("pause");return 0;} int jiecheng(int n) \/\/计算阶...

c++求编程n的阶乘
所以,在计算n的阶乘时,当n较大,在计算时可能会出现空间不足不能进行计算的情况,这种情况下,会返回result的值为0.提醒程序的使用者,本次计算结果不对,请检查程序或者输入数据。最后,如果上面这段看不懂也没有关系,你可以输入一个足够大的数来测试一下,当result初值是否为0对程序有什么影响。

相似回答