You need to enable JavaScript to run this app. 如何修改单数字Krishnamoorthy数校验Java代码以支持10个数字批量校验
优惠活动
大模型
产品
解决方案
定价
更多

如何修改单数字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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 09:03:03