C言語:すべての水仙の数を出力するプログラムを書いてください

分析: 水仙数の定義は、その数自体に等しい 3 桁の数字の合計です。

まず、3 桁の数値をすべて出力できるループを作成する必要があります。

また、数値が出力されるたびにそれが水仙数値であるかどうかを判定し、そうであれば出力し、そうでない場合は出力せずにループを続けるという判定条件も設ける必要があります。

また、判断を下す前に 3 桁を分離する方法を見つける必要があります。

ソースコードは次のとおりですので、コピーしてください。

#include<stdio.h>
int main()
{
    int number, a, b, c;
    for(number=100;number<=999;number++)//输出所有的三位数
    { 
        a = number / 100;//取得百位数
        b = number % 100 / 10;//取得十位数
        c = number % 10;//取得个位数
        if (number == a * a * a + b * b * b + c * c * c)//判断是否为水仙花数
            printf("%5d", number);
    }
    return 0;
}

もちろん、コードは一意ではなく、次のコードも可能です。

#include<stdio.h>
int main()
{
    int i, a, b, c;
    for(i=100;i<1000;i++)
    {
        a = i / 100;
        b = (i - a * 100) / 10;
        c = i % 10;
        if (a * a * a + b * b * b + c * c * c == i)
            printf("%d ", i);


    }
    return 0;
}

フォーム上のすべての水仙の番号を 1 行に 2 つの番号の形式で出力する場合は、次のようにします。

#include<stdio.h>
int main()
{
    int i, a, b, c,n=0;
    for(i=100;i<1000;i++)
    {
        a = i / 100;
        b = (i - a * 100) / 10;
        c = i % 10;
        if (a * a * a + b * b * b + c * c * c == i)
        {
            printf("%d ", i);
            n++;
            if (n % 2 == 0)
                printf("\n");
        }


    }
    return 0;
}

おすすめ

転載: blog.csdn.net/m0_75115696/article/details/128693049