j**a阶乘

时间:2014.02.17 发布人:pan267

j**a阶乘

已解决问题

谷歌pan267用户在2014.02.17提交了关于“我们j**a阶乘”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-18T04:53:13。这是在MyEclipse下的程序:
publicclassJie{
publicstaticvoidmain(String[]args)throwsIOException{
System.out.println("请输入一个数:");
intone=System.***.read();
intsum=1;
for(inti=one;i>0;i--){
sum*=i;
}
System.out.println(one+"!"+"="+sum);
}
}

我输入6,结果显示54!=0我的本意是求所输入数的阶乘值,该怎样改这段程序?希望大家能够帮助她。

详细问题描述及疑问:这是在MyEclipse下的程序:
publicclassJie{
publicstaticvoidmain(String[]args)throwsIOException{
System.out.println("请输入一个数:");
intone=System.***.read();
intsum=1;
for(inti=one;i>0;i--){
sum*=i;
}
System.out.println(one+"!"+"="+sum);
}
}

我输入6,结果显示54!=0我的本意是求所输入数的阶乘值,该怎样改这段程序?期待您的答案,我不知道说什么才好,除了谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:m来自ewanghaha  

厚味设响背位System.***.read()返回的是输入数值的ASKII码(一个int整数)。
如果要求输入与输出的一致的话:

通常情况下,你会用readLine()一行一行地读取输入,因此要把***.in包装成BufferedReader。但在这之前还得先用InputStea减mReader把***.in转换成Reade宗r。

BufferedReaderin=newBufferedRea体感配易事逐der(newInp振第utStreamReader端记德清记阳合(***.in));

inta=Integer.parseInt(in.readLine());//强制转换为几福司诉降厚个右食需要的类型

修改如下:
importj**a.io.BufferedReader;
importj**a.io.IOException;
importj**a.io.InputS问头验易treamReader;

pu线太办绝坐补啊直无记输blicclassJiaC著掉项来heng{
publicstaticvoidmain(Stri求ng[]args)throwsIOException{
BufferedReaderin=newBufferedRe想析量哪好船互对ader(newInputStreamReader(***.in));
System.out.println("请输入一个数:");
intone=I度限排衣厚nteger.parseInt(in.readLine());//强制转换为需要的类型
//intone=System.***.read();你原来的写法,注释掉
intsum=1;
for(inti=one;i>0;i--){
sum*=i;
}
System.战右出式镇区使护out.println(one+"!"+"="+su生令m);
}
}