C++求n的阶乘!

要简单点的~能运行出来的~谢谢... 要简单点的~
能运行出来的~谢谢
展开
 我来答
摩羯面对现实
高粉答主

推荐于2019-09-16 · 繁杂信息太多,你要学会辨别
知道答主
回答量:106
采纳率:0%
帮助的人:5.9万
展开全部

C++求n的阶乘代码如下:

#include<iostream>  

using namespace std;   

int fac(int);   

int main()  

{  

int n;    

while(cin>>n)  

{  

cout<<n<<"!= "<<fac(n)<<endl;  

}   

return 0;  

}    

int fac(int x)  

{  

register int i,f=1;  //定义寄存器变量  

for(i=1;i<=x;i++)  

f*=i;    

return f;  

扩展资料:

C++求n的阶乘的其他方法:

#include<iostream>  

using namespace std;    

int fac(int);    

int main()  

{  

int i;    

for(i=1;i<=10;i++)  

{  

cout<<i<<"!= "<<fac(i)<<endl;  

}    

return 0;  

}    

int fac(int x)  

{  

static int f=1;   //静态局部变量  

f*=x;    

return f;  

}  

参考资料:

百度百科-C++

理阳波rU
推荐于2019-09-04 · TA获得超过9808个赞
知道答主
回答量:10
采纳率:0%
帮助的人:2499
展开全部

以下为C++求阶乘的四种方法,需要注意的是,各个代码只是提供了求阶乘的思路,以便在实际需要时再来编码,各个程序都在1到10内测试正确。

1、该程序在每次输入n时,都会调用fac()来暴力计算以得到结果:

2、该程序利用了数组记录已得到的结果,并在计算下一个结果时利用了已得到的结果。

3、应该说该代码实用性最差,主要是来学习静态局部变量来了。

4、此代码较不常用,思路比较新奇,但可以尝试。

扩展资料

运行程序后,1-10的结果如下,可供检验:

1、当i为:1时阶乘值为:1

2、当i为:1时阶乘值相加为:1

3、当i为:2时阶乘值为:2

4、当i为:2时阶乘值相加为:3

5、当i为:3时阶乘值为:6

6、当i为:3时阶乘值相加为:9

7、当i为:4时阶乘值为:24

8、当i为:4时阶乘值相加为:33

9、当i为:5时阶乘值为:120

10、当i为:5时阶乘值相加为:153

11、当i为:6时阶乘值为:720

12、当i为:6时阶乘值相加为:873

13、当i为:7时阶乘值为:5040

14、当i为:7时阶乘值相加为:5913

15、当i为:8时阶乘值为:40320

16、当i为:8时阶乘值相加为:46233

17、当i为:9时阶乘值为:362880

18、当i为:9时阶乘值相加为:409113

19、当i为:10时阶乘值为:3628800

20、当i为:10时阶乘值相加为:4037913

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
crazyyql
推荐于2019-10-07 · TA获得超过2107个赞
知道答主
回答量:20
采纳率:0%
帮助的人:2833
展开全部

以下为C++求阶乘的四种方法,需要注意的是,各个代码只是提供了求阶乘的思路,以便在实际需要时再来编码,各个程序都在1到10内测试正确。

1、该程序在每次输入n时,都会调用fac()来暴力计算以得到结果:

2、该程序利用了数组记录已得到的结果,并在计算下一个结果时利用了已得到的结果。

3、应该说该代码实用性最差,主要是来学习静态局部变量来了。

4、此代码较不常用,思路比较新奇,但可以尝试。

扩展资料:

运行程序后,1-10的结果如下,可供检验:

1、当i为:1时阶乘值为:1

2、当i为:1时阶乘值相加为:1

3、当i为:2时阶乘值为:2

4、当i为:2时阶乘值相加为:3

5、当i为:3时阶乘值为:6

6、当i为:3时阶乘值相加为:9

7、当i为:4时阶乘值为:24

8、当i为:4时阶乘值相加为:33

9、当i为:5时阶乘值为:120

10、当i为:5时阶乘值相加为:153

11、当i为:6时阶乘值为:720

12、当i为:6时阶乘值相加为:873

13、当i为:7时阶乘值为:5040

14、当i为:7时阶乘值相加为:5913

15、当i为:8时阶乘值为:40320

16、当i为:8时阶乘值相加为:46233

17、当i为:9时阶乘值为:362880

18、当i为:9时阶乘值相加为:409113

19、当i为:10时阶乘值为:3628800

20、当i为:10时阶乘值相加为:4037913

参考资料来源:网易云课堂-C/C++学习指南系列(Qt界面篇)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5b57d4d
推荐于2019-09-25 · TA获得超过8.9万个赞
知道答主
回答量:65
采纳率:61%
帮助的人:3万
展开全部

C++求n的阶乘代码如下:

#include<iostream>  

using namespace std;   

int fac(int);   

int main()  

{  

int n;    

while(cin>>n)  

{  

cout<<n<<"!= "<<fac(n)<<endl;  

}   

return 0;  

}    

int fac(int x)  

{  

register int i,f=1;  //定义寄存器变量  

for(i=1;i<=x;i++)  

f*=i;    

return f;  

扩展资料:

求C++求n的阶乘的其他方法:

#include<iostream.h>
int result=1;
void fac(int n)
{
while(n!=0)
{
result*=n;
n--;
}
}
void main()
{
int a;
cout<<"请输入所要求阶乘的数:"<<endl;
cin>>a;
fac(a);
cout<<a<<"!="<<result<<endl;
}

参考资料:百度百科-阶乘

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-03-17
展开全部
int factorial(int n)

{

int a[1000]; //确保保存最终运算结果的数组足够大

int carry;//进位

int digit = 1;//位数

a[0] = 1;//将结果先初始化为1

int temp;//阶乘的任一元素与临时结果的某位的乘积结果

int i,j;

for(i = 2; i <= n; ++i)//开始阶乘,阶乘元素从2开始依次“登场”

{//按最基本的乘法运算思想来考虑,将临时结果的每位与阶乘元素相乘

for(j = 1, carry = 0; j <= digit; ++j)

{

temp = a[j-1] * i + carry;//相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位)

a[j-1] = temp % 10;//更新临时结果的位上信息

carry = temp / 10; //看是否有进位

}

while(carry)//如果有进位

{

a[++digit-1] = carry % 10;//新加一位,添加信息。位数增1

carry /= 10;//看还能不能进位

}

}

printf("结果是:\n%d ! = ",n);//显示结果

for(i = digit; i >=1; --i)

{

printf("%d",a[i-1]);

}

return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(14)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式