编写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 展开
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 展开
6个回答
展开全部
你这啥玩意 用我这个
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);
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int number=1;number<=i;number++)
其中判断条件的number<i不要等于
因为你在循环外还有一次乘法
其中判断条件的number<i不要等于
因为你在循环外还有一次乘法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么改就对了:
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);
}
}
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for 循环改为
for (int number = 1; number <i; number++) {
msg += number + "*";
fact =fact*number;
}
fact =fact*i;
msg += i+"=" + fact;
System.out.println(msg);
for (int number = 1; number <i; number++) {
msg += number + "*";
fact =fact*number;
}
fact =fact*i;
msg += i+"=" + fact;
System.out.println(msg);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询