c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言实现输出所有的水仙花数

更新时间:2023-10-08

前言

水仙花数,又称阿姆斯特朗数,是指一个三位数,其各位数字立方和等于该数本身。例如,371是一个水仙花数,因为 3^3 + 7^3 + 1^3 = 371。在本文中,我们将会使用C语言来编写一个程序,以输出所有的水仙花数。

算法分析

判断一个三位数是否为水仙花数,需要先将百位、十位、个位数分离出来,再进行计算。我们可以使用三次除法和取模运算,分离出百位、十位、个位数,并使用三次立方运算和加法运算来计算各位数字立方和。

    //计算一个三位数的各位数字立方和
    int sum_of_cubes(int n) {
        int sum = 0;

        int hundreds = n / 100;
        int tens = (n % 100) / 10;
        int ones = n % 10;

        sum = hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones;

        return sum;
    }
  

程序实现

我们需要遍历所有的三位数,判断它是否为水仙花数,最后打印输出所有的水仙花数。为了实现这个目的,我们可以使用三层嵌套的for循环,从100到999遍历所有的三位数,再使用sum_of_cubes函数判断是否为水仙花数。如果是,则将其打印输出。

    #include 

    //计算一个三位数的各位数字立方和
    int sum_of_cubes(int n) {
        int sum = 0;

        int hundreds = n / 100;
        int tens = (n % 100) / 10;
        int ones = n % 10;

        sum = hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones;

        return sum;
    }

    int main() {
        for(int i = 100; i < 1000; i++) {
            if(i == sum_of_cubes(i)) {
                printf("%d ", i);
            }
        }

        return 0;
    }
  

代码解释

程序主要分为两部分:sum_of_cubes函数和main函数。sum_of_cubes函数用于计算一个三位数的各位数字立方和;main函数用于遍历所有的三位数,判断是否为水仙花数。值得注意的是,我们使用了if语句来判断是否为水仙花数,并使用printf函数将所有的水仙花数打印输出。

总结

本文使用C语言实现了输出所有的水仙花数的功能。我们首先分析了水仙花数的特征,然后使用sum_of_cubes函数计算任意一个三位数的各位数字立方和,并使用主函数遍历所有的三位数,判断是否为水仙花数。最后,我们打印输出所有的水仙花数。