首页 分享 每日一题——“水仙花数”

每日一题——“水仙花数”

来源:花匠小妙招 时间:2025-04-23 18:54

每日一题——“水仙花数”

2023-04-20 166 发布于湖北

版权

举报

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介: 哈喽大家好,我是保护小周ღ,本期为大家带来的是求“水仙花数”,此水仙花,非彼水仙花,一起来看看把~

哈喽大家好,我是保护小周ღ,本期为大家带来的是求“水仙花数”,此水仙花,非彼水仙花,一起来看看把~

编辑

题目:

求出0~100000之间的所有“水仙花数”并输出。

描述:

“水仙花数”是指一个n位数,其各位数字的n次方之和刚好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。

注意范围是0~100000之间的所有符合描述的“水仙花数”。

思路解析:

根据描述,我们知道,各位数字的n次方之和刚好等于该数本身才能称之为“水仙花数”,先尝试判断一个数是否为水仙花数,怎么判断呢?

第一步:求出该数的位数n。

第二步:求出该数每一位的n次方之和。

第三步:判断该数字的n次方之和是否刚好等于该数本身

本次博主给大家带来两种解题方式,思路都是一样的,普通计数,递归计数。

普通计数:

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int Count(int size) { int n = 0; while (size) { size = size / 10; ++n; } return n; } int IfDaffodil(int i,int n) { int size = i; int sum = 0; while (size!=0) { int ssum = 1; for (int j = 0; j < n; j++) { ssum *= size % 10; } size = size / 10; sum += ssum; } if (sum == i) { return 1; } else { return 0; } } int main() { for (int i = 0; i <= 100000; ++i) { int size=IfDaffodil(i, Count(i)); if (size == 1) { printf("%d ",i); } else { continue; } } return 0; }

AI 代码解读

编辑

递归计数:

#include<stdio.h> int Count(int n) { if (n < 10) return 1; else return Count(n / 10) + 1; } int Pow(int x, int n) { if (n == 0) return 1; else return pow(x, --n) * x; } int main() { for (int i = 0; i < 100000; ++i) { int n = i; int sum = 0; while (n) { sum += (Pow((n % 10), Count(i))); n /= 10; } if (sum == i) { printf("%d ", sum); } else { continue; } } return 0; }

AI 代码解读

编辑感兴趣的朋友可以用博主的方法,或者是自己的方法做做这道题。

分享一个牛客网上类似的题目,大家也可以尝试着做一做。

链接:水仙花数_牛客题霸_牛客网

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ  *★,°*:.☆( ̄▽ ̄)/$:*.°★*

编辑

 如有侵权请联系修改删除!

目录

打赏

0

0

0

2

相关文章

|

11月前

|

(“拨”取数字的典例:N位水仙花数判断及水仙花数变种)

这篇内容介绍了如何判断和生成水仙花数,水仙花数是一个n位数,其各位数字的n次方之和等于该数本身。文章首先回顾了"拨数"的概念,然后通过实例展示了如何判断三位水仙花数,并将其推广到任意位数的水仙花数。作者提供了详细的解题思路和代码示例,强调了解决这类问题时要慢下来,分步骤分析问题。最后,文章还探讨了一个水仙花数的变种问题,即数字拆分后乘积之和等于原数的情况。

597 0 0

|

11月前

|

水仙花数.

这是一个关于求解水仙花数的C++代码片段。水仙花数是指3位数,其各位数字立方和等于该数本身,如153。代码通过循环遍历100到999,拆分每位数字并计算立方和,如果满足条件则输出该数。解题关键在于对三位数的个位、十位、百位进行拆分和立方运算。

115 0 0

|

热门文章

最新文章

目录

相关知识

每日经典算法题(三) 求水仙花数
每日一题(九)
每日一题
4月13日蚂蚁庄园每日一题
支付宝蚂蚁庄园4月19日每日一题 无花果为什么被叫做无花果
王者荣耀1月13日每日一题 绒花工艺相传始于什么朝代
一朵向日葵花能结多少葵花籽 第五人格每日一题答案
春天随风飘扬的白色柳絮其实是柳树的 蚂蚁庄园5月27日每日一题答案
【每日一题】(190)肯尼亚鲜花种植
每日一题|保护生态环境,这些法律法规需牢记!

网址: 每日一题——“水仙花数” https://www.huajiangbk.com/newsview1786870.html

所属分类:花卉
上一篇: 牛客网——变种水仙花数
下一篇: 开发者将大部分时间花在了 API

推荐分享