求解一道简单的java笔试题

kelvin_yuwenjing 2010-08-30 10:48:23
一个整型变量只能用来存贮较小的N!的值,当N 较大时,可将阶乘值中的每一个数字
放在一个一维数组的一个元素中。使用这方法,用Java打印:
1 N!的值;
2 N!-M!(M>N);
3 N!+M!
...全文
246 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinglimin2009 2010-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 renhuihhh 的回复:]
是出题人描述不清,还是你?

当N 较大时,可将阶乘值中的每一个数字放在一个一维数组的一个元素中。
是否是 5! = {5,4,3,2,1};
如果是,你就遍历数组然后做乘法呗。

如果不是,N! 用递归吧

public int dg(int n){
if(n == 1)
return n;
else
return n * dg(n-1);
}

[/Quote]



同意3楼正解
zhonglijunyi 2010-08-31
  • 打赏
  • 举报
回复
不要用阶乘,给你一个求阶乘的函数自己去用吧
public static BigInteger factorialBigInteger(long n){
if(n<=1)
return BigInteger.valueOf(1);
BigInteger product = BigInteger.valueOf(1);
for(int i=2;i<=n;i++)
product = product.multiply(BigInteger.valueOf(i));
return product;
}
a023421029 2010-08-31
  • 打赏
  • 举报
回复
3楼正解。。。
dr_lou 2010-08-30
  • 打赏
  • 举报
回复
是出题人描述不清,还是你?

当N 较大时,可将阶乘值中的每一个数字放在一个一维数组的一个元素中。
是否是 5! = {5,4,3,2,1};
如果是,你就遍历数组然后做乘法呗。

如果不是,N! 用递归吧

public int dg(int n){
if(n == 1)
return n;
else
return n * dg(n-1);
}
renhuihhh 2010-08-30
  • 打赏
  • 举报
回复
这个较大还是不较大 给定临界值吗? 还是以int的峰值作为临界值?
Inhibitory 2010-08-30
  • 打赏
  • 举报
回复
大数乘法,网上多得是

62,634

社区成员

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

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