对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。(百度面试题)
2009-11-24 14:08
621 查看
c#版
如:10!=1*2.....10 只有个位2*5和10的倍数可以产生0
所以10!后有2个0
同样推理20!后面有4个0.
所以得到公式 b=n%10
如b>=5: n/10*2+1 反直则是n/10*2
不知道对不对
private int countFactorialZero(int n)
{
int t = n / 10;
int g = n % 10;
return g >= 5 ? t * 2 + 1 : t * 2;
}
如:10!=1*2.....10 只有个位2*5和10的倍数可以产生0
所以10!后有2个0
同样推理20!后面有4个0.
所以得到公式 b=n%10
如b>=5: n/10*2+1 反直则是n/10*2
不知道对不对
private int countFactorialZero(int n)
{
int t = n / 10;
int g = n % 10;
return g >= 5 ? t * 2 + 1 : t * 2;
}
相关文章推荐
- 对任意输入的正整数N,编写C程序求N!的尾部连续0的个数
- 对任意输入的正整数N,编写C程序求N!的尾部连续0的个数...
- 19. 中兴面试题:输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 编写计算“两个整数的最大公约数”程序。 要求通过键盘输入两个整数、检查输入整数是否符合要求,并计算出其最大公约数。
- 编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果
- 编写一个程序 输入整数 直到输入0 计算偶数的个数 奇数的个数 和偶数的平均值 与奇数的平均值
- 使用c语言编写程序,从键盘上任意输入两个数字,并计算出两个数的最小公倍数
- 简单编程(三)编写一个程序,要求用户输入两个整数,然后计算并输出他们的和、差、积、商。
- 一个正整数有可能可以表示为n(n>=2)个连续的正整数之和,如:15=1+2+3+4+5,15=4+5+6,15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 一个正整数有可能可以被表示为 m(m>=2) 个连续正整数之和,编写一个程序,输入一个正整数,然后找出符合这种要求的所有 连续正整数序列,若不存在这种序列,则打印None。
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 编写一程序要求任意输入四位十六进制的整数,以反序的方式输出该十六进制数。 例如 :输入9AF0, 则输出 0FA9
- 编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的
- 编写程序计算以下数列的前n项之和,其中n的值从键盘输入。
- 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
- 编写程序,判断用户输入的数字是否完全数.所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完全数”。