水仙花数的求解思路 水深无声 2022-12-29 02:27 104阅读 0赞 ### 目录 ### * 水仙花数 * * * 输入一个数,求解从0到这个数的所有水仙花数 * 解题思路 * 源代码: * 注意事项 # 水仙花数 # 在以前的博客之中写过求解水仙花数的博客 详情见下面链接: [求解水仙花数][Link 1] 在这里就主要写求解水仙花数的思路 ### 输入一个数,求解从0到这个数的所有水仙花数 ### “水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如 : 153=1 3+5 3+3 3,则153是一个“水仙花数”。 输入一个书,求出0~100000之间的所有“水仙花数”并打印输出 # 解题思路 # 1、首先要输入一个数字 2、一次遍历从0到这个数字中的所有数字,可以用循环 3、拿到这个数,首先判断这个数字是几位数 4、将这个数字的每个位数拿到,并求出这个数的次方和 5、判断所求的和,是否和原来的数字相同,相同则打印 > 1、首先要输入一个数字 > 利用scanf输入这个数字 > 2、一次遍历从0到这个数字中的所有数字,可以用循环 > for (int i = 0; i < input; i++) > 3、拿到这个数,首先判断这个数字是几位数 > int n = i; > int count = 1; > while (n > 9) > \{ > count++; > n /= 10; > \} > 4、将这个数字的每个位数拿到,并求出这个数的次方和 > int m = i; > int sum = 0; > while (m) > \{ > int a = m % 10; > sum += (int)pow(a, count); > m /= 10; > \} > 5、判断所求的和,是否和原来的数字相同,相同则打印 > if (i == sum) > \{ > printf("%d ", i); > \} # 源代码: # #include <stdio.h> #include <math.h> int main() { int input = 0; scanf("%d", &input); //遍历这些数 for (int i = 0; i < input; i++) { //求这个数的位数 int n = i; int count = 1; while (n > 9) { count++; n /= 10; } //求和 int m = i; int sum = 0; while (m) { int a = m % 10; sum += (int)pow(a, count); m /= 10; } //判断是否相等 if (i == sum) { printf("%d ", i); } } printf("\n"); return 0; } 根据从键盘中输入的数字打印水仙花数: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MjE0MjczMQ_size_16_color_FFFFFF_t_70] 当然也可以通过控制for循环中开始的大小来控制输出的范围大小。 # 注意事项 # 其实以前已经写过,我在这里主要是想说,拿到题目不需要直接蛮干,要仔细分析,这样比直接写效率要高的多。 [Link 1]: https://blog.csdn.net/weixin_52142731/article/details/110288042 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MjE0MjczMQ_size_16_color_FFFFFF_t_70]: /images/20221120/6b9ae656537c429bb9b3391f9e3ed9ac.png
相关 水仙花数求解 水仙花数 水仙花数又称阿姆斯特朗数。 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 15 迈不过友情╰/ 2023年10月08日 22:02/ 0 赞/ 37 阅读
相关 华为OD机试题 - 水仙花数(JavaScript)| 含思路 最近更新的博客 [华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单][od 2023 _ _od_od _od] [华为OD机试真题大全 爱被打了一巴掌/ 2023年09月29日 21:51/ 0 赞/ 18 阅读
相关 水仙花数的求解思路 目录 水仙花数 输入一个数,求解从0到这个数的所有水仙花数 解题思路 源代码: 注意事项 水仙花数 在以前的博客之中写过 水深无声/ 2022年12月29日 02:27/ 0 赞/ 105 阅读
相关 水仙花数 for a=1 to 9 for b=0 to 9 for c=0 to 9 if(100\a+10\b+c=a\a\a+b\b\b+c\c\c) ? 100\a+10 Love The Way You Lie/ 2022年09月30日 09:55/ 0 赞/ 202 阅读
相关 水仙花数 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次 傷城~/ 2022年09月17日 14:18/ 0 赞/ 174 阅读
相关 水仙花数 ![Center][] c++解法: include <iostream> using namespace std; 以你之姓@/ 2022年07月18日 01:24/ 0 赞/ 226 阅读
相关 水仙花数 例题:从键盘输入m,n表示水仙花取数范围,如果在此范围内存在水仙花数,则输出所有水仙花数并从小到大排列,否则输出no import java.util.Scanner 清疚/ 2022年06月08日 07:13/ 0 赞/ 211 阅读
相关 水仙花数 水仙花数 水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。 for(var i = 100;i<1000;i++){ //获取百位数 桃扇骨/ 2022年04月17日 01:50/ 0 赞/ 235 阅读
相关 水仙花数 问题描述 打印所有100至999之间的水仙花数。所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1^3+5^3+3^3。 样例输入 一个满足题目 旧城等待,/ 2022年03月30日 04:08/ 0 赞/ 261 阅读
相关 水仙花数 水仙花数(Narcissistic number)也被称为超完全数字不变数 (pluperfect digital invariant, PPDI)、自恋数、自 快来打我*/ 2021年11月23日 16:40/ 0 赞/ 689 阅读
还没有评论,来说两句吧...