当前位置:首页C语言 > 正文

c语言水仙花数的编程

作者:野牛程序员:2023-07-08 13:54:07C语言阅读 2792

水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

下面是一个用C语言编写的程序,用于查找并打印指定范围内的所有水仙花数:

#include <stdio.h>
#include <math.h>

int isArmstrongNumber(int number) {
    int originalNumber, remainder, result = 0, n = 0;

    originalNumber = number;

    // 计算位数
    while (originalNumber != 0) {
        originalNumber /= 10;
        ++n;
    }

    originalNumber = number;

    // 计算每个位上数字的n次幂之和
    while (originalNumber != 0) {
        remainder = originalNumber % 10;
        result += pow(remainder, n);
        originalNumber /= 10;
    }

    // 如果结果等于原始数字,则是水仙花数
    if (result == number)
        return 1;
    else
        return 0;
}

void printArmstrongNumbers(int start, int end) {
    printf("水仙花数列表:\\n");

    for (int i = start; i <= end; ++i) {
        if (isArmstrongNumber(i)) {
            printf("%d ", i);
        }
    }
}

int main() {
    int start, end;

    printf("请输入范围的开始和结束数字:");
    scanf("%d %d", &start, &end);

    printArmstrongNumbers(start, end);

    return 0;
}

你可以运行这个程序并输入范围的开始和结束数字,它将打印出指定范围内的所有水仙花数。请注意,输入的开始和结束数字必须是正整数,并且结束数字必须大于等于开始数字。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击