本文目錄一覽:
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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/242760.html