階乘的演算法
㈠ 階乘的計算方法
正整數階乘指從 1 乘以 2 乘以 3 乘以 4 一直乘到所要求的數。例如所要求的數是 4,則階乘式是 1×2×3×4,得到的積是 24,24 就是 4 的階乘。 例如所要求的數是 6,則階乘式是 1×2×3×……×6,得到的積是 720,720 就是 6 的階乘。例如所要求的數是 n,則階乘式是 1×2×3×……×n,設得到的積是 x,x 就是 n 的階乘 。
㈡ 階乘的公式是什麼
n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
亦即n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
資料來源:階乘_網路
㈢ 階乘計算
1-20%=0.8
1000+1000*0.8^1+。。。。。1000*0.8^n=1000(1+0.8^1+。。。。。0.8^n)
=1000[(1-0.8^(n+1))/1-0.8]=5000*(1-0.8^(n+1))
(等比數列的前n項和公式)
㈣ 階乘計算
void fact(int n,int jc[])
{ int i,j,s;
int sum[300]={0}; //臨時存儲計算結果
sum[0]=1;
for(i=1;i<=n;i++)
{ for(j=1;j<300;j++)
sum[j]=ssum[j]*i;
for(j=1;j<299;j++) //十進制變換
if(sum[j]>9)
{ sum[j+1]=sum[j+1]+sum[j]/10;
sun[j]=sum[j]%10;
}
}
i=299;
while(sum[i]==0)
{ i--;}
s=i+1;//階乘的位數
jc[0]=s; //返回計算結果
for(i=1;i<=s;i++)
jc[i]=sum[s-i];
}
//調用示例
main()
{ int n,i,s;
int jc[300]; //定義一個存儲用的數組,注意數組元素個數不能過小,否則會溢出
printf("please input the num !");
scanf("%d",&n);
fact(n,jc);
s=jc[0];//取得階乘位數
printf("%d的階乘為\n",n);
for(i=s;i>=1;i--) //倒序列印
printf("%d",jc[i]);
}
㈤ 階乘的程序和演算法
沒說要什麼語言編寫的,我給你一個Java的:
public class Factorial
{ public static int factorial(int x)
{
if (x < 0)
{
throw new IllegalArgumentException("x must be>=0");
}
int fact = 1;
for(int i = 2; i <= x; i++)
{
fact *= i;
}
return fact;
}
public static void main(String args[])
{
System.out.print(factorial(10));
}
}