编写java程序,实现接受用户输入的正整数,输出该数的阶乘.例如:输入数据4,则输出结果为:4!=1*2*3*4=24

importjava.util.Scanner;publicclassjieda2{publicstaticvoidmain(String[]args){Scanneri... import java.util.Scanner;
public class jieda2 {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("输入数据:");
int i=input.nextInt();
String msg="";
int fact=1;
if(i>10||i<1){
System.out.println("程序有误");
return;
}
System.out.print(i+"!=");
for(int number=1;number<=i;number++){
msg+=number+"*";
fact*=i;
}
fact*=i;
msg+=i+"="+fact;
System.out.println(msg);
}
}
这个代码出来的结果 跟题中要求的答案不同 哪里出错了 求大神解答!!!
本人新手一枚 希望有位大神带带我 有意者 +我QQ 779484954
展开
 我来答
武林第一帅哥
推荐于2017-09-04 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:49.4万
展开全部
有两个地方建议改改。。。第一个是循环中的“number<=i”,,,把等号删除。。。。第二个是循环中的fact*=i....把i改为number。。。。改正之后应该就是没问题了
鲜明又挺拔的雏菊D
2014-06-12 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:100%
帮助的人:85.8万
展开全部
你这啥玩意 用我这个
Scanner input=new Scanner(System.in);
System.out.println("输入数据:");
int i=input.nextInt();
// String msg="";
StringBuffer msg = new StringBuffer();
int fact=1;
if(i>10||i<1){
System.out.println("程序有误");
return;
}
msg.append(i+"!=");
// System.out.print(i+"!=");
for(int number=1;number<=i;number++){
fact=fact*number;
if(number == 4){
msg.append(number);
}else{
msg.append(number+"*");
}
}
msg.append("="+fact);
// fact*=i;
// msg+=i+"="+fact;
System.out.println(msg);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kasim416
2014-06-12 · TA获得超过707个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:295万
展开全部
for(int number=1;number<=i;number++)

其中判断条件的number<i不要等于

因为你在循环外还有一次乘法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c910d9f
2014-06-12 · 超过13用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:24.2万
展开全部
这么改就对了:
public class jieda2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入数据:");
int i = input.nextInt();
String msg = "";
int fact = 1;
if (i > 10 || i < 1) {
System.out.println("程序有误");
return;
}
System.out.print(i + "!=");
for (int number = 1; number <= i; number++) {
msg += number + "*";
fact = fact * number;
}
msg += i + "=" + fact;
System.out.println(fact);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厘米的小屋
2014-06-12 · 超过12用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:23.3万
展开全部
for 循环改为
for (int number = 1; number <i; number++) {
msg += number + "*";
fact =fact*number;
}
fact =fact*i;
msg += i+"=" + fact;
System.out.println(msg);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式