问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

自幂数:从概念到代码实现

创作时间:
作者:
@小白创作中心

自幂数:从概念到代码实现

引用
CSDN
1.
https://m.blog.csdn.net/Luluucy/article/details/139014696

自幂数(也称为阿姆斯特朗数或自恋数)是一个有趣的数学概念,它指的是一个数的各个位数的幂次之和等于该数本身。例如,153是一个三位自幂数,因为1^3 + 5^3 + 3^3 = 153。本文将详细介绍一到十位的自幂数,并提供C、C++和MATLAB三种编程语言的代码示例,帮助读者更好地理解和实现这一概念。

一到十位的自幂数

自幂数是指一个数的各个位数的幂次之和等于该数本身的数字。以下是一到十位的自幂数:

  • 一位自幂数:独身数
  • 三位自幂数:水仙花数
  • 四位自幂数:四叶玫瑰数
  • 五位自幂数:五角星数
  • 六位自幂数:六合数
  • 七位自幂数:北斗七星数
  • 八位自幂数:八仙数
  • 九位自幂数:九九重阳数
  • 十位自幂数:十全十美数

一位自幂数

一位数中的自幂数即为该数本身。

二位自幂数

二位数中没有自幂数。

三位自幂数

三位自幂数是指一个三位数,其个位、十位和百位的立方和等于该数本身。目前已知的唯一一个三位自幂数是 153。

四位自幂数到十位自幂数

四位及以上的自幂数确实存在,例如四位自幂数有1634、8208、9474等。由于篇幅限制,这里不再列举更多。

代码示例

以下是用C语言实现的代码示例:

#include <stdio.h>
#include <math.h>
int main() 
{
    printf("一位自幂数:\n");
    for (int num = 0; num <= 9; num++) 
    {
        printf("%d\n", num);
    }
    printf("二位自幂数:\n");
    // 二位数中没有自幂数
    printf("三位自幂数:\n");
    for (int num = 100; num <= 999; num++) 
    {
        int digit1 = num / 100;
        int digit2 = (num / 10) % 10;
        int digit3 = num % 10;
        int sum = pow(digit1, 3) + pow(digit2, 3) + pow(digit3, 3);
        if (sum == num) 
        {
            printf("%d\n", num);
        }
    }
    printf("四位自幂数:\n");
    // 四位自幂数目前未知
    for (int num = 1000; num <= 9999; num++)
     {
        // 循环范围是从1000到9999,但目前尚未发现四位自幂数,因此循环体为空
    }
    // 五位到十位自幂数的循环同理,但范围不同
    return 0;
}

以下是用C++实现的代码示例:

#include <iostream>
using namespace std;
int main() {
    cout << "一位自幂数:" << endl;
    for (int num = 0; num <= 9; num++) 
    {
        cout << num << endl;
    }
    cout << "二位自幂数:" << endl;
    // 二位数中没有自幂数
    cout << "三位自幂数:" << endl;
    for (int num = 100; num <= 999; num++) 
    {
        int digit1 = num / 100;
        int digit2 = (num / 10) % 10;
        int digit3 = num % 10;
        int sum = pow(digit1, 3) + pow(digit2, 3) + pow(digit3, 3);
        if (sum == num) {
            cout << num << endl;
        }
    }
    cout << "四位自幂数:" << endl;
    // 四位自幂数目前未知
    for (int num = 1000; num <= 9999; num++) 
{
        // 循环范围是从1000到9999,但目前尚未发现四位自幂数,因此循环体为空
    }
    // 五位到十位自幂数的循环同理,但范围不同
    return 0;
}

以下是用MATLAB实现的代码示例:

disp('一位自幂数:');
for num = 0:9
    disp(num);
end
disp('二位自幂数:');
% 二位数中没有自幂数
disp('三位自幂数:');
for num = 100:999
    digit1 = floor(num / 100);
    digit2 = floor(mod(num, 100) / 10);
    digit3 = mod(num, 10);
    sum = digit1^3 + digit2^3 + digit3^3;
    if sum == num
        disp(num);
    end
end
disp('四位自幂数:');
% 四位自幂数目前未知
for num = 1000:9999
    % 循环范围是从1000到9999,但目前尚未发现四位自幂数,因此循环体为空
end
% 五位到十位自幂数的循环同理,但范围不同

通过以上代码示例,读者可以更好地理解自幂数的概念,并尝试找出更多位数的自幂数。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号