小弟菜鸟 请教高手一个问题 谢谢 100的阶乘末尾有多少个零?请各位写一下程序貌似LONG类型都存不下不知怎么办了希望有个高效的方法小弟再次感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 def tt(n) return 1 if n==0 || n==1 n*tt(n-1)endp tt(100)93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 private static int f(int n) { int sum = 0; int m = n / 5; if (n % 5 == 0) { if (m % 5 == 0) { sum += f(m); } sum += m; } return sum; } private static int f(int n) { int sum = 0; int m = n / 5; while (m != 0) { sum += m; m /= 5; } return sum; }这样应该对了吧 import java.util.ArrayList;import javax.swing.JOptionPane;public class Test{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub factorial(100); } public static void factorial(int value) { ArrayList result = new ArrayList(); int carryBit = 0; result.add(new Integer(1)); for (int out = 2; out <= value; out++) { for (int in = 0; in < result.size(); in++) { int temp = ((Integer) result.get(in)).intValue() * out + carryBit; result.set(in, new Integer(temp % 10)); carryBit = temp / 10; } while (carryBit != 0) { result.add(new Integer(carryBit % 10)); carryBit = carryBit / 10; } } StringBuffer sb=new StringBuffer(result.size()); for(int i=0;i<result.size();i++) { sb.append(result.get(i)); } sb=sb.reverse(); System.out.println("result="+sb); System.out.println("结果位数:"+result.size()); }}http://slmi.javaeye.com/blog/479406 同意21楼,这题如果笔算就这么算比较妙。java学习交流群:20378027。欢迎大家加入。 public static void main(String[] args){ int data = 100; //求data阶乘末尾包含多少个0. int i = 5 ; int count = 0; while(data/i!=0) { count+=(data/i); i*=i; } System.out.println(data+"阶乘末尾0个数是:"+ count); }http://topic.csdn.net/u/20090218/12/60066a91-d558-4f4e-afdb-8380c688a056.htmlCSDN上有人问过这个问题 - -! 如何设置一个Map的初始容量?默认的15太大了。 学习J2SE以后,下一步该怎么办? 有关ActionListener 的一个错误太奇怪了,急,请教高手!! [正则表达式] 如何实现空格check java程序开机自动运行 求助:急!急!急!把一个java代码添加到另一个java代码?急!急!急! 【如何屏蔽 JFrame 标题栏的“关闭”按钮】 成都的朋友,大家好有事请教,自己心里实在是没底, 百分,求实时向数据库里写数据的类,谢谢! 以下是我连sql server2000的代码,为什么老是不对,各位多指教 显示访问的次数、主机名和地址 菜鸟JAVA ++ 问题
return 1 if n==0 || n==1
n*tt(n-1)
end
p tt(100)
93326215443944152681699238
85626670049071596826438162
14685929638952175999932299
15608941463976156518286253
69792082722375825118521091
6864000000000000000000000000
private static int f(int n) {
int sum = 0;
int m = n / 5;
if (n % 5 == 0) {
if (m % 5 == 0) {
sum += f(m);
}
sum += m;
}
return sum;
}
private static int f(int n) {
int sum = 0;
int m = n / 5;
while (m != 0) {
sum += m;
m /= 5;
}
return sum;
}这样应该对了吧
import java.util.ArrayList;import javax.swing.JOptionPane;public class Test{ /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
factorial(100);
}
public static void factorial(int value) {
ArrayList result = new ArrayList();
int carryBit = 0;
result.add(new Integer(1));
for (int out = 2; out <= value; out++) {
for (int in = 0; in < result.size(); in++) {
int temp = ((Integer) result.get(in)).intValue() * out
+ carryBit;
result.set(in, new Integer(temp % 10));
carryBit = temp / 10;
}
while (carryBit != 0) {
result.add(new Integer(carryBit % 10));
carryBit = carryBit / 10;
}
}
StringBuffer sb=new StringBuffer(result.size());
for(int i=0;i<result.size();i++)
{
sb.append(result.get(i));
}
sb=sb.reverse();
System.out.println("result="+sb);
System.out.println("结果位数:"+result.size());
}
}http://slmi.javaeye.com/blog/479406
java学习交流群:20378027。欢迎大家加入。
public static void main(String[] args){
int data = 100; //求data阶乘末尾包含多少个0.
int i = 5 ;
int count = 0;
while(data/i!=0) {
count+=(data/i);
i*=i;
}
System.out.println(data+"阶乘末尾0个数是:"+ count);
}
http://topic.csdn.net/u/20090218/12/60066a91-d558-4f4e-afdb-8380c688a056.htmlCSDN上有人问过这个问题 - -!