昨天晚上看到的一道题目:
The factorial(阶乘) of an integer n,written n!,is the product of the consecutive integers 1 through n.For example,5 factorial is calculated as
5!=5*4*3*2*1=120
Write a program to generate and print a table of the first 10 factorials。
想了半天都没有结果,请高手指教。这个是我自己写的代码。
#include <stdio.h>
main()
{
int n,i;
long int s;
printf(" n________s\n");
for(n=1;n<=10;n++)
{
for (i=1;i<=n;i++)
{
s=i;
s=s*i;
printf(" %d %d\n",n,s);
}
}
return 0;
}
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int n;long int s;
for(n=1,s=1;n<=10;n++)
{ s=s*n;
printf("%d的阶乘是:%d\n",n,s);
}
}
----------------解决方案--------------------------------------------------------
这种问题,不劳高手,我就可以解决了。修改后的代码:
#include <stdio.h>
int main()
{
int n,i;
long int s;
printf(" n________s\n");
for(n=1;n<=10;n++)
{
s=1;
for (i=1;i<=n;i++)
s=s*i;
printf(" %d %d\n",n,s);
}
return 0;
}
原因你自己分析好了。
----------------解决方案--------------------------------------------------------
n
没 有值
用个scanf("%d",&n);
输入进去
----------------解决方案--------------------------------------------------------
这个用递归的
#include<stdio.h>
long sum=1,i=1;
int main()
{
sum*=i++;
if(i<=10)
main();
else
printf("%ld\n",sum);
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main()
{
int sum=1,N;
for(N=1;N<=10;printf("%d!=%d\n",N,sum),N++,sum=1)
for(int n=N;n>0;n--) sum*=n;
return 0;
}
----------------解决方案--------------------------------------------------------
我也给你写一个:
#include <stdio.h>
void main()
{
int i,N;
int s=1;
printf("请输入你要求的阶乘数:");
scanf("%d",&N);
for (i=1;i<=N;i++)
s*=i;
printf("%d 的阶乘为:%d\n",N,s);
}
----------------解决方案--------------------------------------------------------
谢谢大家,小弟明白了。
----------------解决方案--------------------------------------------------------