首先,计算1~n的阶乘,是数字1到n相乘,用到循环语句
int main()
{
int i=0,num=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
num=num*i;
}
printf("%d",num);
return 0;
}
思路是:
首先打出框架
int main()
{
return 0;
}
考虑到用魂环语句,这里我选择用for语句
int main()
{
int i = 0, n = 0;
for(i=1;i<=n;i++)
return 0;
}
这时,我们到实际操作时想要输入一个数,就可以得到这个数的阶乘,此时用到scanf
int main()
{
int i = 0, n = 0;
scanf("%d", &n);
for(i=1;i<=n;i++)
return 0;
}
下面在for的下面打出输出语句
int main()
{
int i = 0, n = 0;
scanf("%d", &n);
int num = 1;
for (i = 1; i <= n; i++)
{
num = num * i;
}
printf("%d", num);
return 0;
}
这里的num=num*i 多出现一个变量,在上面在多插入一个。
下面介绍把N个阶乘数相加
这里用到的是两个循环语句。
在原来的基础上,在加上几个变量
思路:
比如:我们想输出一个10个n阶乘相加的数:1!+2!+。。。+10!的结果
我们首先需要输入10;
int main()
{
int i = 0, n = 0;
int num = 1;
int A = 0;
scanf("%d", &A);
for(n=1;n<=A;n++)
for (i = 1; i <= n; i++)
{
num = num * i;
}
return 0;
}
这里的代码思路是我们想算一个A个数的阶乘和,当我们输入的A等于10时,n从1到10开始循环,
从1开始:
到第2个循环,num输出值为1;
第2个循环结束,继续第1个循环
第2个循环继续开始:此时n被+1等于2
开始进行第2个循环,num的输出值为2;等等。。。
//注意,我们需要做的是将每次第2个循环结束时的num还原为1;所以需要加上
num=1;
int main()
{
int i = 0, n = 0;
int num = 1;
int A = 0;
scanf("%d", &A);
for(n=1;n<=A;n++)
{
num=1;
for (i = 1; i <= n; i++)
{
num = num * i;
}
}
return 0;
}
然后我们在最后加上他们几个数相加的代码,最后打印
int main()
{
int i = 0, n = 0;
int num = 1;
int A = 0;
int k = 0;
scanf("%d", &A);
for (n = 1; n <= A; n++)
{
num = 1;
for (i = 1; i <= n; i++)
{
num = num * i;
}
k += num;
}
printf("%d", k);
return 0;
}