【发布时间】:2020-04-15 07:56:43
【问题描述】:
汤姆教他的学生求一个数的阶乘。他想测试学生的理解力。为此,他提供了一个数字。他希望学生告诉他这个数字是哪个数字的阶乘。
示例:如果汤姆提供的数字是 120,学生应该回答为 5,因为 5! = 120。
通过编写程序来帮助学生做到这一点。请注意,输入应该是一个大于零的数字。如果输入小于或等于零,则输出应为“无效输入”。此外,如果提供的输入不完全是一个数字的阶乘,例如,提供的输入是 122,这不是一个数字的完美阶乘,它应该返回“对不起。给定的数字不是完美的阶乘”。
示例输入 1: 5040 样本输出 1: 7
示例输入 2: 0 样本输出 2: 输入无效
示例输入 3: 700 样本输出 3: 对不起。给定的数字不是完美的阶乘
public static void main(string[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=n;
if (n<=0){
System.out.println("Invalid Input");
return;
}
for(int x=2;m!=x;x++)
{
m=m/x;
}
System.out.println(m);
}
else
System.out.println("the given number is not a perfect factorial")
}
在执行这个程序时,它没有显示非阶乘数字的预期结果。就像示例输出 3 我无法得到它。
【问题讨论】:
-
你的问题是?
-
请描述您面临的问题。此外,您可能还想考虑
n为 1 时会发生什么 -
还好心问:这是什么任务吗?
-
另外你的代码是无效的:
else缺少它的if -
确定这不是学习作业? ;)