一个简单的java程序!

zichuan1979 2004-09-06 08:10:10
在jbuild4.0中用string类实现100的阶乘!我要源程序。谢谢。一定给分。要求能直接运行!
...全文
290 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
packtrixie 2004-09-07
  • 打赏
  • 举报
回复
up
amplified_1 2004-09-07
  • 打赏
  • 举报
回复
这里没有一个程序是正确的。。明天给你答案吧。太晚了。。
不想了
fairness 2004-09-07
  • 打赏
  • 举报
回复
public class Calc
{
public static void main(String[] args) throws Exception {
Runtime.getRuntime().exec("calc");
}
}

^_^
registered 2004-09-07
  • 打赏
  • 举报
回复
兄弟们看好了
楼主说的是 100
long 最多算到 20
想到 100 而且不失精度必须用 BigInteger

import java.math.BigInteger;

public class BigFactorial {
public static BigInteger calc(BigInteger src) {
BigInteger one;
BigInteger two;
BigInteger result;


one = new BigInteger("1");
two = new BigInteger("2");
result = new BigInteger(src.toString());
while (src.compareTo(two) > 0) {
result = result.multiply(src = src.subtract(one));
}

return result;
}

public static void main(String[] args) {
System.out.println(calc(new BigInteger("100")));
}
}

这个结果是非常可怕的...
feiyuqing 2004-09-07
  • 打赏
  • 举报
回复
楼上的好象有点问题.我运行了.提示俩错误.还有.100的阶乘结果是不是超出long的范围了。
因为我试了.结果是0.我把100改成10就有结果
Dynamic 2004-09-07
  • 打赏
  • 举报
回复
大家都写出代码来了,我就不写了。
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
乖乖,真的挺快!
fengyetianshi 2004-09-07
  • 打赏
  • 举报
回复

import java.math.*;
class f
{
public static void main(String[] args) {
BigInteger big = new BigInteger("1");
for (int i = 1 ; i<= 100; i++){
big = big.multiply(new BigInteger(String.valueOf(i)));
}
System.out.println(big);

}
}

把这段代码保存为f.java运行即可
lliushine 2004-09-07
  • 打赏
  • 举报
回复
有谁知道BigInteger是如何来计算的吗?
zhengcg 2004-09-07
  • 打赏
  • 举报
回复
to: guangchao()
我是为了打出每个阶乘才放在里面的,看着一串串的数,真有意思,不过从运行结果来看,速度还是很不错的,几乎是一闪而过,哈哈。
tangbow 2004-09-07
  • 打赏
  • 举报
回复
不错
guangchao 2004-09-07
  • 打赏
  • 举报
回复
上面的那个人写错了,System.out.println()应该写在for的外面
baffling 2004-09-07
  • 打赏
  • 举报
回复
up
zhengcg 2004-09-07
  • 打赏
  • 举报
回复
import java.math.*;

public static void main(String[] args) {
BigInteger big = new BigInteger("1");
for (int i = 1 ; i<= 100; i++){
big = big.multiply(new BigInteger(String.valueOf(i)));
System.out.println(big);
}
}

答案:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
guojiafuzhuxi 2004-09-07
  • 打赏
  • 举报
回复
我看懂了。呵呵。
woodfans 2004-09-07
  • 打赏
  • 举报
回复
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
woodfans 2004-09-07
  • 打赏
  • 举报
回复
import java.math.*;
amplified_1 2004-09-06
  • 打赏
  • 举报
回复
public class Resul{
long jiecheng(int size){
if(size == 1){
return size;
}

size = jiecheng(size-1)*size;
return size;
}
public static void main(String[] args){
long resuL;
resuL = jiecheng(100);
System.out.println(resuL);
}
}
Squall1009 2004-09-06
  • 打赏
  • 举报
回复
我想知道java里面的long能存多大的数啊?
在c++里面一般都用数组存放这种结果的.
zhouyun 2004-09-06
  • 打赏
  • 举报
回复
//int i = 0; -------------------->不要
long lResult = 1;
for(int i = 1; i <= 100; i++){
lResult *= i;
}
System.out.println(lResult);//查看结果
Rockay 2004-09-06
  • 打赏
  • 举报
回复
不知道
加载更多回复(1)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧