帮忙看看这个用JAVA编写的 计算阶乘和 的程序
mip版 关注:209 答案:2 悬赏:30
解决时间 2021-01-27 14:16
已解决
2021-01-26 16:30
以1!+2!+...10!为例
public class hw5_10
{
public static void main(String args[])
{
int count=0;
int ji=1;
for(int i=1;i<=20;i++)
{
for(int j=i;j>=1;j--)
{
ji*=j;
}
count+=ji;
}
System.out.println(count);
}
}
上面这样为什么不行??而把第六行放到第十行和第十一行之间就行??
写错了。应该把第六行放在第八行和第九行之间才对。
我明白了,多谢。
最佳答案
2021-01-26 17:51
因为ji是在循环外定义的
for(int j=i;j>=1;j--)
{
ji*=j;
}
由于上面这段代码使得 ji每次都在递增
所以要放到循环里面使ji每次都从1开始
全部回答
1楼
2021-01-26 18:13
import java.io.bufferedreader;
import java.io.ioexception;
import java.io.inputstreamreader;
public class test {
private static int fact(int x) {
if (x == 0) {
return 1;
} else {
return x * fact(x - 1);
}
}
public static void main(string[] args) throws ioexception {
system.out.println("1.输入名字.");
system.out.println("2.计算阶乘.");
system.out.println("3.退出程序.");
bufferedreader br = new bufferedreader(new inputstreamreader(system.in));
int i = new integer(br.readline()).intvalue();
switch (i) {
case 1:
bufferedreader br1 = new bufferedreader(new inputstreamreader(system.in));
system.out.println("请输入你的名字:");
string str = br1.readline();
system.out.println(str);
break;
case 2:
bufferedreader br2 = new bufferedreader(new inputstreamreader(system.in));
system.out.println("请输入一个大于等于0的数:");
int result = new integer(br2.readline()).intvalue();
system.out.println(fact(result));
break;
case 3:
system.exit(0);
}
}
}不会是gui吧?
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看