如何用C语言编写程序计算N的阶乘末尾0的个数?

更新于
2026-07-31 13:56:09
11阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计653个文字,预计阅读时间需要3分钟。

如何用C语言编写程序计算N的阶乘末尾0的个数?

题目描述:输入一个正整数n,求n!(即阶乘)末尾有多少个0。

例如:n=10;10!=3628800,末尾有2个0,所以答案为2。

输入描述:输入为一行,包含一个整数n(1≤n≤1000)。

输出描述:输出为一行,输出一个整数,表示n!末尾0的个数。

示例:输入:10输出:2

题目描述:

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2

输入描述:

输入为1行,n(1≤n≤1000)

输出描述:

输出一个整数

样例:

输入:10

输出:2

看到这个题,常规思路就是先把阶乘算出来,再用算出来的结果求余,余数为0则个数加1,代码如下:

#include<iostream> using namespace std; int main(void) { int n, m = 1; cin >> n; for (int i = n; i > 0; i--) { m = m * i; } int sum = 0; int t; for (int i = 0; m > 0; i++) { t = m % 10; m = m / 10; if (t != 0) //要是0前面的数字不是0,则直接结束 { cout << sum; return 0; } else { sum++; } } return 0; }

注意一点,就是题目要求是算出末尾的0的个数,而不是整个数字中有多少0,所以要注意当余数不是0的时候就要结束代码。

阅读全文

本文共计653个文字,预计阅读时间需要3分钟。

如何用C语言编写程序计算N的阶乘末尾0的个数?

题目描述:输入一个正整数n,求n!(即阶乘)末尾有多少个0。

例如:n=10;10!=3628800,末尾有2个0,所以答案为2。

输入描述:输入为一行,包含一个整数n(1≤n≤1000)。

输出描述:输出为一行,输出一个整数,表示n!末尾0的个数。

示例:输入:10输出:2

题目描述:

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2

输入描述:

输入为1行,n(1≤n≤1000)

输出描述:

输出一个整数

样例:

输入:10

输出:2

看到这个题,常规思路就是先把阶乘算出来,再用算出来的结果求余,余数为0则个数加1,代码如下:

#include<iostream> using namespace std; int main(void) { int n, m = 1; cin >> n; for (int i = n; i > 0; i--) { m = m * i; } int sum = 0; int t; for (int i = 0; m > 0; i++) { t = m % 10; m = m / 10; if (t != 0) //要是0前面的数字不是0,则直接结束 { cout << sum; return 0; } else { sum++; } } return 0; }

注意一点,就是题目要求是算出末尾的0的个数,而不是整个数字中有多少0,所以要注意当余数不是0的时候就要结束代码。

阅读全文