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++求阶乘的四种方法,需要注意的是,各个代码只是提供了求阶乘的思路,以便在实际需要时再来编码,各个程序都在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++求阶乘的四种方法,需要注意的是,各个代码只是提供了求阶乘的思路,以便在实际需要时再来编码,各个程序都在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界面篇)
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 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;
}