本文目录一览:
C语言里怎么计算n! ??求大神解
如果数 比较小,可以直接 n*(n-1)*(n-2)*....*1 计算
#includestdio.h
int main()
{
int n,ans=1;
scanf("%d",n);//输入整数
while(n) ans *=n,n--;
printf("%d\n",ans);
return 0;
}
如果n比较大,需要大整数模拟计算
如何用C语言编写“计算n”的程序?
#includeiostream
using namespace std;
int main()
{
int n;
cout"请输入一个正整数:";
cinn;
while(n=0)
{
cout"输入无效,请重新输入:";
cinn;
}
int result=1;
for(int i=1;i=n;i++)
result *= i;
cout"n!="resultendl;
return 0;
}
关于n的计算,c语言程序
程序如下:
#include stdio.h
void main()
{
int n,t=0;
scanf("%d",n);
while(n=5)
{
n=n-5;
t=t+1;
}
while(n5n=3)
{
n=n-3;
t=t+1;
}
while(n3n=1)
{
n=n-1;
t=t+1;
}
printf("%d\n",t);
}
C语言问题编写一个函数计算n!
#include stdio.h
int fac(int n)
{
if(n2)
return 1;
return n*fac(n-1);
}
int main()
{
int n;
scanf("%d",n);
printf("%d\n",fac(n));
return 0;
}
C语言中计算N!的方法
晕这个就是小学的长乘法,这个是用数组来存储的大数阶乘:
#include stdio.h
int main()
{
int n = 1;
scanf("%d",n);
int a[20000];
int carry;
int i;
int digit = 1; // digit记录的是当前的值的位数
a[0] = 1; // 初始化第1位为1
int temp;
for(i = 2; i = n; ++i) { // 从2开始乘
carry = 0;
// 这个循环分别用i乘以当前积的每一位
for(int j = 1; j = digit; ++j) {
temp = a[j-1] * i + carry; // 累加进位
a[j-1] = temp % 10; // 收缩
carry = temp / 10; // 记录进位
}
while(carry) { // carry不为0则表示进出了新的位数
a[++digit-1] = carry % 10; // 依次进位直到carry为0
carry /= 10;
}
}
// 是倒过来存的,所以输出也要倒过来
for(i = digit; i =1; --i)
printf("%d",a[i-1]);
printf("\n");
n++;
return 0;
}
看你的样子,你们来是应该不会叫你编高精度的吧,写个一般的可以了:
#include stdio.h
int main()
{
int fac, i;
int n;
scanf("%d", n); // 输入n
// 计算fac = 1*2*...*n
for(fac = 1, i = 2; i = n; ++i)
fac *= i;
printf("%d", fac);
return 0;
}