#include <stdio.h>
int main ()
{
unsigned long long int a=1;
unsigned long long int b=0;
unsigned long long int c=0;
scanf("%llu",&c);
getchar ();
for(b=1;b<=c;b+=1)
{
a=a*b;
}
printf("%llu",a);
getchar();
return 0;
}
- 如以上代码,先定义三个变量。
- 变量a是阶乘运算结果。b是构成循环的条件以及参与阶乘运算的部分。c是实现多少数的阶乘运算以及for循环次数的决定。
- 在for循环中,一般有三个“;”隔开没一个部分。第一部分为,初始化。第二部分为,判断。第三部分为调整。依次来构成一个循环体系。
- scanf实现了输入值赋予给c变量,以此来达到多少数的阶乘这个设计目的。随后的getchar()是为了接收最后按下的回车,防止出现不必要的BUG。
- for循环以b变量为每次循环的条件,以c变量来实现循环的总次数。并且依据阶乘的公式,将b赋予1的整数值。按照循环的次数不断增加的值,与a变量相乘,就实现了阶乘的运算。
- unsigned long long是加在int前面的,为了提高其最大的正数输出值,需要配合%llu来实现。