如何用C语言完成水仙花数的搜索

概念讲解:
什么是水仙花数呢?
所谓的水仙花数是指:一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。 例如153,370,371等都是水仙花数,就拿153来说,153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3

代码思路

  1. 为了搜索指定范围的所有水仙花数,最好的办法当然是遍历啦,因此,编写代码的第一步就是确定使用for循环实现对目标范围所有数字的遍历
  2. 根据水仙花数的概念,我们必须确定当前数字的位数,这样才能确定每一位上的数字应该用几次方来求和
    例如:153的位数为3;370的位数为3;1634的位数为4;
  3. 确定好当前数字的位数后,则需要求出来当前数字的每一位上都是几
    例如:153的每一位上的数字分别为1、5、3;370的每一位上的数字分别为3、7、0;
  4. 知道当前数字的位数,以及每一位上的数字分别是什么后,剩下的就剩下求和了
    例如: 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3; 370=3 * 3 * 3+7 * 7 * 7+0 * 0 * 0;
    1634=1 * 1 * 1 * 1+6 * 6 * 6 * 6+3 * 3 * 3 * 3+4 * 4 * 4 * 4;
  5. 将最终的求和结果和当前数字进行比较,如果相等,则为水仙花数,如果不是,那进行下一个数字的判断,直到遍历所有待求范围的数字

具体代码

#include<stdio.h>
//水仙花数
//1.确定位数
//2.确定每个数字
//3.判断
int pow(int number, int times) //自定义函数求number的times次方
{int result = 1;for (int i = 0; i < times; i++){result *= number;}return result;
}
int main()
{for (int i = 100; i <= 100000; i++)//查找范围{//判断位数int count = 1;int sum = 0;int tem = i;while (tem / 10){count++;tem /= 10;}//确定每一位的值,求count次方后,累加起来tem = i;for (int j = 0; j < count; j++){sum += pow(tem % 10, count);tem /= 10;}//判断累加和是否与当前数字相同,相同则为水仙花数,将其打印出来if (sum == i) {printf("当前水仙花数为:%d \n", i);}}return 0;
}

如何用C语言完成水仙花数的搜索相关推荐

  1. 打印出所有的水仙花数javascript_期末C语言特辑 水仙花数

    点击蓝字 关注我们 期末C语言特辑  水仙花数 [问题描述]水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PP ...

  2. 水仙花数c语言程序解析,C语言求水仙花数代码解析

    原标题:C语言求水仙花数代码解析 水仙花数 "水仙花数"又称为"阿姆斯特朗数".如果一个n(n≥3)位数的各位数字的n次幂之和等于该数本身,则该数称为" ...

  3. C语言求水仙花数(自幂数)

    C语言求水仙花数 什么是水仙花数 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身.例如:1^3 + 5^3+ 3^3 = 153 函数实现 代码如下: #define _CRT ...

  4. 【C语言编程--水仙花数II】

    水仙花数II 前言 一.题目 二.使用步骤 1. 思路 2. 三位数求各个位数 3. 判断是否为水仙花数 三.具体实现 前言 用C语言实现水仙花数II 一.题目 请判断一个数是不是水仙花数.其中水仙花 ...

  5. c语言如何水仙花数,c语言如何解水仙花数

    c语言解水仙花数的方法:首先按[CTRL+N]新建一个源代码:然后输入水仙花数的源代码:接着按[F9]进行编译:最后显示无错误后按[F10]运行即可. c语言解水仙花数的方法: 1.首先什么是水仙花数 ...

  6. 基于基础c语言的水仙花数编程方法

    首先,什么是水仙花数? 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或 ...

  7. 求两个数之间的水仙花数.c语言,求水仙花数(C语言/Java)

    求出0-999999之间的所有"水仙花数"并输出. "水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身, 如:153=1 ^ 3+5 ^ 3+3 ^ ...

  8. c语言编写水仙花数代码

    水仙花数,也称为自恋数,是指一个n位数(n>=3)各位数字的n次方之和等于该数本身的数.例如,153是一个三位水仙花数,因为1^3 + 5^3 + 3^3 = 153. 下面是用C语言编写的代码 ...

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

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

最新文章

  1. python标准库介绍——23 UserString 模块详解
  2. 014——数组(十四)array_reduce array_slice array_splice array_sum
  3. 使用Apache Archiva管理Maven仓库
  4. linux / scp 详解
  5. 浏览器插件-- Browser Helper Object(BHO) 一
  6. python 按键精灵 离线_python,PyAutoGUI,自动操作鼠标键盘,类似按键精灵
  7. vue项目导入elementui_在vue项目中使用elementui
  8. 1006. Sign In and Sign Out (25)-PAT甲级真题
  9. php对引用的简单理解
  10. java当月日历_java程序——输出当月日历表
  11. React Native Button使用
  12. Industrial Design System v4.5 1CD(工业产品设计软件)
  13. 用户故事与敏捷方法—故事不是什么
  14. CorelDRAWX4的VBA插件开发(二十)创建进度条来显示程序运行进度
  15. 浙江正泰中自 DCS系统PCS1800系统介绍
  16. 大佛顶首楞严经摄论 太虚大师著 -读记
  17. css重复,CSS小课堂之可重复渐变
  18. Thinkphp资源源码付费下载站网站源码
  19. Android中半圆形背景
  20. ESLint配置详解

热门文章

  1. linux 命令sed命令指定行或匹配行插入行
  2. 外贸行业签合同以及付款的技巧
  3. NoteExpress:按照先中文后英文的形式
  4. 微信小程序 表单 form 组件
  5. 单调栈解决取矩形问题
  6. python制作游戏教程_python制作填词游戏步骤详解
  7. linux密码sha512解密,使用sha512算法加密linux密码
  8. 【安全算法之SHA512】SHA512摘要运算的C语言源码实现
  9. 判断数字能不能被整除
  10. 易百教程人工智能python修正-人工智能监督学习(回归)