如何用C语言完成水仙花数的搜索
如何用C语言完成水仙花数的搜索
概念讲解:
什么是水仙花数呢?
所谓的水仙花数是指:一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。 例如153,370,371等都是水仙花数,就拿153来说,153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
代码思路
- 为了搜索指定范围的所有水仙花数,最好的办法当然是遍历啦,因此,编写代码的第一步就是确定使用for循环实现对目标范围所有数字的遍历
- 根据水仙花数的概念,我们必须确定当前数字的位数,这样才能确定每一位上的数字应该用几次方来求和
例如:153的位数为3;370的位数为3;1634的位数为4; - 确定好当前数字的位数后,则需要求出来当前数字的每一位上都是几
例如:153的每一位上的数字分别为1、5、3;370的每一位上的数字分别为3、7、0; - 知道当前数字的位数,以及每一位上的数字分别是什么后,剩下的就剩下求和了
例如: 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; - 将最终的求和结果和当前数字进行比较,如果相等,则为水仙花数,如果不是,那进行下一个数字的判断,直到遍历所有待求范围的数字
具体代码
#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语言完成水仙花数的搜索相关推荐
- 打印出所有的水仙花数javascript_期末C语言特辑 水仙花数
点击蓝字 关注我们 期末C语言特辑 水仙花数 [问题描述]水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PP ...
- 水仙花数c语言程序解析,C语言求水仙花数代码解析
原标题:C语言求水仙花数代码解析 水仙花数 "水仙花数"又称为"阿姆斯特朗数".如果一个n(n≥3)位数的各位数字的n次幂之和等于该数本身,则该数称为" ...
- C语言求水仙花数(自幂数)
C语言求水仙花数 什么是水仙花数 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身.例如:1^3 + 5^3+ 3^3 = 153 函数实现 代码如下: #define _CRT ...
- 【C语言编程--水仙花数II】
水仙花数II 前言 一.题目 二.使用步骤 1. 思路 2. 三位数求各个位数 3. 判断是否为水仙花数 三.具体实现 前言 用C语言实现水仙花数II 一.题目 请判断一个数是不是水仙花数.其中水仙花 ...
- c语言如何水仙花数,c语言如何解水仙花数
c语言解水仙花数的方法:首先按[CTRL+N]新建一个源代码:然后输入水仙花数的源代码:接着按[F9]进行编译:最后显示无错误后按[F10]运行即可. c语言解水仙花数的方法: 1.首先什么是水仙花数 ...
- 基于基础c语言的水仙花数编程方法
首先,什么是水仙花数? 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或 ...
- 求两个数之间的水仙花数.c语言,求水仙花数(C语言/Java)
求出0-999999之间的所有"水仙花数"并输出. "水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身, 如:153=1 ^ 3+5 ^ 3+3 ^ ...
- c语言编写水仙花数代码
水仙花数,也称为自恋数,是指一个n位数(n>=3)各位数字的n次方之和等于该数本身的数.例如,153是一个三位水仙花数,因为1^3 + 5^3 + 3^3 = 153. 下面是用C语言编写的代码 ...
- c语言中水仙花数的代码,水仙花数c语言实现代码
水仙花数c语言实现代码 任务二报告 v1.2 前言: 本次任务我使用的是c语言(其他语言不熟悉...汗颜). 源码: #include int main() { int a,b,c,d,e,f,g,h ...
最新文章
- python标准库介绍——23 UserString 模块详解
- 014——数组(十四)array_reduce array_slice array_splice array_sum
- 使用Apache Archiva管理Maven仓库
- linux / scp 详解
- 浏览器插件-- Browser Helper Object(BHO) 一
- python 按键精灵 离线_python,PyAutoGUI,自动操作鼠标键盘,类似按键精灵
- vue项目导入elementui_在vue项目中使用elementui
- 1006. Sign In and Sign Out (25)-PAT甲级真题
- php对引用的简单理解
- java当月日历_java程序——输出当月日历表
- React Native Button使用
- Industrial Design System v4.5 1CD(工业产品设计软件)
- 用户故事与敏捷方法—故事不是什么
- CorelDRAWX4的VBA插件开发(二十)创建进度条来显示程序运行进度
- 浙江正泰中自 DCS系统PCS1800系统介绍
- 大佛顶首楞严经摄论 太虚大师著 -读记
- css重复,CSS小课堂之可重复渐变
- Thinkphp资源源码付费下载站网站源码
- Android中半圆形背景
- ESLint配置详解