用三种方法 要求1:在 TC 编译器里运行。
2:输入100!后再出来结果,不是直接输出100阶乘的结果
急啊~~~!!!!! 谢谢!!!!!
请附上运行后的图
用三种方法 要求1:在 TC 编译器里运行。
2:输入100!后再出来结果,不是直接输出100阶乘的结果
急啊~~~!!!!! 谢谢!!!!!
请附上运行后的图
方法一:递归求解:
#include <stdio.h>
double fact(int n)
{
if(n<0) printf("n<0,data error!");
else if(n==0||n==1) return 1;
return fact(n-1)*n;
}
void main()
{
int a;
double f;
printf("input one number:");
scanf("%d",&a);
f=fact(a);
printf("the result is %f",f);
getch();
}
方法二:for循环求解:
#include <stdio.h>
void main()
{
int a,i;
double f=1;
printf("input one number:");
scanf("%d",&a);
for(i=1;i<=a;i++){
f*=i;
}
printf("the result is %f",f);
getch();
}
第三种还是循环:do...while()循环:
#include <stdio.h>
void main()
{
int a;
double f=1;
printf("input one number:");
scanf("%d",&a);
while(a>0){
f*=a;
a--;
}
printf("the result is %f",f);
getch();
}
建议你用递归后面两个程序有些不足,递归效率最高