输入一个正整数n,计算n!的末尾有多少个0。
思路:
(1)本题要求末尾0的个数,因此只需关注n!中10的因子个数。
(2)10可以分解成2和5相乘的结果,而在n!中,2的因子个数显然是大于5的因子个数,因此只需统计n!中5的因子个数即可。
(3)具体实现时,可以使用循环从1到n遍历每个数字,并计算其包含的5的因子个数,最后将所有数字的5的因子个数相加即为答案。
以下是一份参考代码:
#include <stdio.h>
int main()
{
int n;
printf("请输入一个正整数:\n");
scanf("%d", &n);
int count = 0;
for(int i = 1; i <= n; i++)
{
int num = i;
while(num % 5 == 0)
{
count++;
num /= 5;
}
}
printf("%d!的末尾有%d个0\n", n, count);
return 0;
}
输入一个正整数n,计算n!的值。
思路:
(1)根据阶乘的定义,n!等于1到n之间所有正整数的乘积,因此可以使用循环计算乘积。
(2)具体实现时,用一个变量prod来记录乘积,初始值为1,然后从1到n遍历每个数字,并将其乘到prod中即可。
以下是一份参考代码:
#include <stdio.h>
int main()
{
int n;
printf("请输入一个正整数:\n");
scanf("%d", &n)