如何修改单数字Krishnamoorthy数校验Java代码以支持10个数字批量校验
Krishnamoorthy数批量校验修改方案
Krishnamoorthy数指各位数字的阶乘之和等于其本身的数,示例:145 = 1! + 4! + 5!。
原代码仅支持单次输入校验,仅需要修改main方法的逻辑,增加10次循环即可实现需求,修改后的完整代码如下:
import java.util.Scanner; public class krishnamoorthy { static int fact(int number) { int f = 1; while (number != 0) { f = f * number; number--; } return f; } static boolean checkNumber(int number) { int sum = 0; int tempNumber = number; while (tempNumber != 0) { sum = sum + fact(tempNumber % 10); tempNumber = tempNumber / 10; } return sum == number; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 循环10次接收输入 for(int i = 1; i <= 10; i++){ System.out.println("请输入第" + i + "个数字:"); int n = sc.nextInt(); if (checkNumber(n)) System.out.println(n + " 是Krishnamoorthy数"); else System.out.println(n + " 不是Krishnamoorthy数"); } sc.close(); } }
主要改动说明
- 新增10次循环逻辑,批量处理10个输入数字的校验需求
- 简化了checkNumber方法的返回值写法,无需冗余的if判断
- 修复了原代码输出非Krishnamoorthy数时前面缺失空格的排版问题
- 新增输入序号提示,交互更清晰
- 增加了Scanner资源关闭的逻辑,避免资源泄漏
内容的提问来源于stack exchange,提问作者OffensiveProgrammer69
相关产品推荐
相关产品推荐

