#include<stdio.h>
#include<time.h>
n!
//long long Fact(int n){
//
// if(n==0) return 1;
// else return n*Fact(n-1);
//
//}
斐波那契递归
//long long Fib(int n)
//{
// int b;
// if(n==1||n==2) b= 1;
// else b=Fib(n-1)+Fib(n-2);
// printf("%d",b);
// }
斐波那契非递归
//long long Fib2(int n)
//{
// long f1,f2,f3;
// f1=1;f2=1;
// if(n==1||n==2) return 1;
// else {
// f3=f1+f2;
// f1=f2;
// f2=f3;
// return f3;
// }
// }
//int main(){
// int n;
// int start,end;
// printf("请输入一个数:");
// scanf("%d",&n);
// //start = clock();
// int a;
// a=Fact(n);
// printf("%d\n",a);
// //end = clock();
// //printf("运行时间为:%dms",end-start);
// return 0;
//}
long long Fact2(int n){
int i;
int s=1;
for(i=1;i<n;i++)
{
s=s*i;
}
return s;
}
int main(){
int n;
//int start,end;
printf("请输入一个数:");
scanf("%d",&n);
//start = clock();
int a;
a=Fact2(n);
printf("%d\n",a);
//end = clock();
//printf("运行时间为:%dms",end-start);
return 0;
}
n的阶乘就是,从1开始乘比前一个数大1的数,一直乘到n。
可以利用循环来解决:设循环变量为i,初值为1,i从1变化到n,依次让i与sum相乘,并将乘积赋给sum.
(1)定义变量sum,并赋初值1;
(2)i自增加1;
(3)直到i超过n.