搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > C语言从零开始 > C语言编程——29.水仙花数问题

C语言编程——29.水仙花数问题

C语言从零开始 2017-10-31

题目:水仙花数问题。输入一个正整数n(3<=n<=7),输出所有的n位水仙花数。水仙花数是指一个n位正整数,它的各位数字的n次幂之和等于它本身。例如153的各位数字的立方和是13+53+33=153.

分析:

本例首先要根据输入正整数n,判断循环变量的初始值和终值。初始值即为10n,终值为10n+1

然后要判断每一个数是否为水仙花数,需要用到循环来计算每一位数。

/位数=最高位的数,用数%位数=余数作为下一次的被除数。

变量:正整数n,循环变量i

输入:正整数n

处理:根据输入的n的位数,循环寻找可能的水仙花数,并输出。

代码:

#include <stdio.h>

#include <math.h>

 

int main(void){

    int a,n,s,i,j;

    int f;

 

    printf("请输入位数:");

    scanf("%d",&n);

    printf("%d~%d之间的水仙花数有:",(int)pow(10,n-1),(int)pow(10,n));

 

    for(j=(int)pow(10,n-1);j<(int)pow(10,n);j++)

    {

        a=j;

        for(i=n,f=0;i>=1;i--){

            s=a/(int)pow(10,i-1);

            f=f+(int)pow(s,n);

            a=a%(int)pow(10,i-1);

        }

        if(f==j)

        printf("%d  ",f);

    }

    printf("\n");

    system("pause");

    return 0;

}

运行结果:

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《C语言编程——29.水仙花数问题》的版权归原作者「C语言从零开始」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注C语言从零开始微信公众号

C语言从零开始微信公众号:gh_40a1b0d695b5

C语言从零开始

手机扫描上方二维码即可关注C语言从零开始微信公众号

C语言从零开始最新文章

精品公众号随机推荐