计算n!=1*2*3*...*(n–1)*
展开全部
递归算法如下:
long long Factorial(long long n){if(n==0)return 1;
return Factorial(n-1)*n;}void Test1(){
printf("%lld\n",Factorial(1));
printf("%lld\n",Factorial(10));
printf("%lld\n",Factorial(100));
printf("%lld\n",Factorial(1000));}
扩展资料
自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
历史
早在12世纪,印度学者就已有使用阶乘的概念来计算排列数的纪录[3]。1677年时,法比安·斯特德曼使用Change ringing来解释阶乘的概念。
在描述递归方法之后,斯特德将阶乘描述为:“现在这些方法的本质是这样的:一个数字的变化数包含了所有比他小的数字(包括本身)的所有变化数……因为一个数字的完全变化数是将较小数字的变化数视为一个整体,并透过将所有数字的完整变化联合起来。”,
参考资料来源:百度百科-阶乘
展开全部
解法1,使用for循环做:
#include<stdio.h>
void main(){
long i,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
for(i=1;i<=n;i++){
result*=i;
}
printf("%ld!=%ld",n,result);
}
解法2,使用while循环做:
#include<stdio.h>
void main(){
long i=1,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
while(i<=n){
result*=i;
i++;
}
printf("%ld!=%ld",n,result);
}
解法3,使用do...while循环做:
#include<stdio.h>
void main(){
long i=0,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
do{
i++;
result*=i;
}while(i<=n);
printf("%ld!=%ld",n,result);
}
解法4,使用递归做:
#include<stdio.h>
long calc(long num){
if(num==0){
return 0;
}else if(num==1){
return 1;
}else{
return num*calc(num-1);
}
}
void main(){
long n;
printf("请输入n的值:");
scanf("%ld",&n);
printf("%ld!=%ld",n,calc(n));
}
#include<stdio.h>
void main(){
long i,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
for(i=1;i<=n;i++){
result*=i;
}
printf("%ld!=%ld",n,result);
}
解法2,使用while循环做:
#include<stdio.h>
void main(){
long i=1,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
while(i<=n){
result*=i;
i++;
}
printf("%ld!=%ld",n,result);
}
解法3,使用do...while循环做:
#include<stdio.h>
void main(){
long i=0,result=1,n;
printf("请输入n的值:");
scanf("%ld",&n);
do{
i++;
result*=i;
}while(i<=n);
printf("%ld!=%ld",n,result);
}
解法4,使用递归做:
#include<stdio.h>
long calc(long num){
if(num==0){
return 0;
}else if(num==1){
return 1;
}else{
return num*calc(num-1);
}
}
void main(){
long n;
printf("请输入n的值:");
scanf("%ld",&n);
printf("%ld!=%ld",n,calc(n));
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询