//打印0-100000之间的自幂数
#include<stdio.h>
int power(int n, int k)  //求n的k次方,n,k均为自然数
{
    int result = 1;
    if (k == 0)
        result = 1;
    else
    {
        for (int i = k; i >0; i--)
        {
            result *= n;
        }
    }
    return result;
}
void print_PDDI(int n)   //打印自恋数
{
    int i = 0;
    if (n>0)
    {
        printf("一位自幂数(独身数)为:");
        for (i = 0; i < 10 && i<=n; i++) 
        {
            if (i == power(i, 1))
            {
                printf("%2d", i);
            }
        }
        printf("\n");
    }
    if (n > 10)
    {
        printf("两位自幂数为:");
        for (i = 10; i < 100 && i <= n; i++)
        {
            int one = i % 10;
            int two = i / 10;
            if (i == power(one, 2)+power(two,2))
            {
                printf("%3d", i);
            }
        }
        printf("\n");
    }
    if (n > 100)
    {
        printf("三位自幂数(水仙花数)为:");
        for (i = 100; i < 1000 && i <= n; i++)
        {
            int one = i % 10;
            int two = (i / 10) % 10;
            int three = i / 100;
            if (i == power(one, 3) + power(two, 3)+power(three,3))
            {
                printf("%4d", i);
            }
        }
        printf("\n");
    }
    if (n > 1000)
    {
        printf("四位自幂数(四叶玫瑰数)为:");
        for (i = 1000; i < 10000 && i <= n; i++)
        {
            int one = i % 10;
            int two = (i / 10) % 10;
            int three = (i / 100) % 10;
            int four = i / 1000;
            if (i == power(one, 4) + power(two, 4) + power(three, 4)+power(four,4))
            {
                printf("%5d", i);
            }
        }
        printf("\n");
    }
    if (n > 10000)
    {
        printf("五位自幂数(五角星数)为:");
        for (i = 10000; i < 100000 && i <= n; i++)
        {
            int one = i % 10;
            int two = (i / 10) % 10;
            int three = (i / 100) % 10;
            int four = (i / 1000) % 10;
            int five = i / 10000;
            if (i == power(one, 5) + power(two, 5) + power(three, 5) + power(four, 5)+power(five, 5))
            {
                printf("%6d", i);
            }
        }
        printf("\n");
    }
    if (n > 100000)
    {
        printf("六位自幂数(六合数)为:");
        for (i = 100000; i < 1000000 && i <= n; i++)
        {
            int one = i % 10;
            int two = (i / 10) % 10;
            int three = (i / 100) % 10;
            int four = (i / 1000) % 10;
            int five = (i / 10000) % 10;
            int six = i / 100000;
            if (i == power(one, 6) + power(two, 6) + power(three, 6) + power(four, 6) + power(five, 6)+power(six,6))
            {
                printf("%7d", i);
            }
        }
        printf("\n");
    }
    if (n > 1000000)
    {
        printf("七位自幂数(北斗七星数)为:");
        for (i = 1000000; i < 10000000 && i <= n; i++)
        {
            int one = i % 10;
            int two = (i / 10) % 10;
            int three = (i / 100) % 10;
            int four = (i / 1000) % 10;
            int five = (i / 10000) % 10;
            int six = (i / 100000) % 10;
            int seven = i / 1000000;
            if (i == power(one, 7) + power(two, 7) + power(three, 7) + power(four, 7) + power(five, 7) + power(six, 7)+power(seven,7))
            {
                printf("%8d", i);
            }
        }
        printf("\n");
    }
}
int main()
{
    int n = 0;
    printf("输入一个数n,求不大于n的所有自恋数\nn = ");
    scanf("%d", &n);
    print_PDDI(n);
    return 0;
}

打印不超过n的自恋数(水仙花数)C语言实现相关推荐

  1. 打印水仙花数--C语言

    使用函数输出水仙花数 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身.例如:153=13+53+33. 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小 ...

  2. vs水仙花数c语言代码,求水仙花数c语言代码怎么写

    求水仙花数c语言代码怎么写 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮 ...

  3. C语言经典题目 水仙花数,C语言经典练习题:水仙花数

    废话不说直接进入正题:传说中的水仙花数就是一个三位数的各个位数的三次方之和就是这个数本身例如153=1*1*1+5*5*5+3*3*3. 好,开始解题:首先,题中已经说了水仙花数是一个三位数,也就是说 ...

  4. c语言上机报告之水仙花数,C语言上机报告之水仙花数..doc

    C语言上机报告之水仙花数. C语言程序设计 上机报告 课题名称:水仙花数的算法 院 (系):工程学院 专业班 级: 052126 学生姓名: 喻培 学 号: 20121004040 指导教师: 熊慕舟 ...

  5. c语言中水仙花数的代码,水仙花数c语言实现代码

    水仙花数c语言实现代码 任务二报告 v1.2 前言: 本次任务我使用的是c语言(其他语言不熟悉...汗颜). 源码: #include int main() { int a,b,c,d,e,f,g,h ...

  6. Java12个小练习_打印三角形_素数_利率_水仙花数_回文数

    Java基础day6作业 1.一个足球队在寻找年龄在10岁到12岁的小女孩(包括10岁和12岁)加入.编写程序,询问用户的性别(1表示男性,0表示女性)和年龄,然后显示一条消息指出这个人是否可以加入球 ...

  7. JavaScript算法(实例一)完数 / 水仙花数 / 素数

    1.完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.(例如:6=1+2+3).使用算法查找1 ~ 1000之间所有的完数. var i,j; for(i=1;i<=10 ...

  8. 水仙花数C语言代码优化

    不足之处,请指正. 题目:求出0-999之间的所有"水仙花数"并输出."水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身,如:153=13+53+3 ...

  9. 找出m到n水仙花数c语言程序设计,《C语言课程设计输出水仙花数》.doc

    <C语言课程设计输出水仙花数> C语言程序设计课程设计 评语: 考勤(10)纪律(10)过程(40)设计报告(30)答辩(10)总成绩(100) 专 业: 班 级: 姓 名: 学 号: 指 ...

最新文章

  1. python中遍历结构可以是哪些数据类型_全!Python基础之原生数据类型、判断和循环、函数和文件操作合集...
  2. Condition.doSignal
  3. 我做 Fiori 开发经常使用的几个系统,不同的 SAP UI5 版本
  4. acrobat 控件可以发布吗_短视频可以同时在多个平台发布吗?
  5. NodeJs实现下载Excel文件
  6. 如何安装_如何安装吸顶灯?吸顶灯安装注意事项
  7. jeecg框架alert消息样式
  8. 【项目管理】工作分解结构WBS
  9. python文件例题_文件操作练习题
  10. 什么是实验室人员比对人员_中实在线——程老师小课堂 实验室人员管理技巧...
  11. swagger 配置- ssm
  12. h3c Telnet配置实验
  13. Linux 命令整理-tailf
  14. 正则表达式 Java
  15. 如何自己搭建测试环境
  16. 混拨vps与单城市拨号vps有什么区别?
  17. mysql5.7 只读视图_MySQL 5.7: Innodb read view在只读场景的优化
  18. WIN10 USB 代码19 无法识别USB
  19. appium连接vivo手机,启动APP后就不动了--其它手机正常
  20. C语言求两个数的较大值

热门文章

  1. wifi打印机打印(二维码,条形码等)
  2. tokudb引擎使用
  3. 基于OP放大器的有源模拟滤波器设计--基础知识
  4. 飞图平板电脑android系统怎么更新,苹果平板电脑怎么更新教程【图文】
  5. 我差点错过高校毕业生毕业之后这个3000元现金直接打入银行卡的补贴!
  6. HAC集群添加新节点
  7. VII html+css
  8. 9700 功耗测试软件,测试平台与说明 - 酷睿i9-9900K/i7-9700K同步评测:八核的时代来了 - 超能网...
  9. 使用css和js实现刮刮乐(简单易懂还有趣)
  10. 第五次作业:《国际贸易学》—WTO及区域经济一体化