You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

各位数字立方和等于自身的数的名称及C#无预定义方法实现

阿姆斯特朗数(Armstrong Number)

各位数字的立方和等于自身的数被称为阿姆斯特朗数,这类数属于自幂数的一种(自幂数指一个数的各位数字的n次方之和等于它本身,n为该数的位数,3位阿姆斯特朗数的n就是3)。比如153,计算过程为:
1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153,完全符合定义。

C# 实现:动态输入且无预定义方法依赖

以下代码实现了动态输入数字,且全程不使用Math.Pow、ToString()、int.Parse()等预定义方法,纯手动完成数字转换、拆分与立方计算:

using System;

class ArmstrongChecker
{
    static void Main()
    {
        Console.WriteLine("请输入一个整数:");
        string input = Console.ReadLine();
        
        // 手动将输入字符串转为整数
        int num = 0;
        for (int i = 0; i < input.Length; i++)
        {
            num = num * 10 + (input[i] - '0');
        }

        int originalNum = num;
        int sumOfCubes = 0;

        // 手动拆分每一位数字并计算立方和
        while (num > 0)
        {
            int digit = num % 10;
            // 手动计算立方
            int cube = digit * digit * digit;
            sumOfCubes += cube;
            num = num / 10;
        }

        // 判断并输出结果
        if (sumOfCubes == originalNum)
        {
            Console.WriteLine($"{originalNum} 是阿姆斯特朗数");
        }
        else
        {
            Console.WriteLine($"{originalNum} 不是阿姆斯特朗数");
        }
    }
}

代码说明

  • 输入转换:通过遍历输入字符串的每个字符,利用ASCII码差值(字符'0'的ASCII值为48)将字符转为对应数字,再逐步累加得到整数,避免使用预定义转换方法。
  • 数字拆分:使用取余运算%10获取当前数字的最后一位,再通过整除/10移除最后一位,全程无需将数字转为字符串处理。
  • 立方计算:直接通过三次乘法运算实现立方计算,不依赖Math.Pow方法。

内容的提问来源于stack exchange,提问作者user19585404

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 01:54:26