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

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

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

image.gif编辑

题目:

求出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>//统计每一个数的位数intCount(intsize)
{
intn=0;
while (size)
    {
size=size/10;
++n;
    }
returnn;
}
//判断是否为水仙花intIfDaffodil(inti,intn)
{
intsize=i;
intsum=0;
//判断是否为符合“水仙花”while (size!=0)
    {
intssum=1;
//ssum统计每一位的n次方for (intj=0; j<n; j++)
        {
ssum*=size%10;
        }
size=size/10;
//sum统计各位的n次方之和sum+=ssum;
    }
//各位数字的n次方之和确好等于该数本身if (sum==i)
    {
return1;
    }
else    {
return0;
    }
}
intmain()
{
//遍历区间for (inti=0; i<=100000; ++i)
    {
//当程序执行IfDaffodil时,会先执行完作为“参数”的Count,等Count执行完毕再执行自己intsize=IfDaffodil(i, Count(i));
if (size==1)
        {
printf("%d ",i);
        }
else        {
continue;
        }
    }
return0;
}

image.gif

image.gif编辑

递归计数:

#include<stdio.h>//统计每一个数的位数intCount(intn)
{
if (n<10)//当该数只剩个位时,递归结束return1;
elsereturnCount(n/10) +1;
/*{n=n/10;return Count(n)+1;}*/}
//计算每一位的n次方intPow(intx, intn)
{
if (n==0)
return1;
elsereturnpow(x, --n) *x;//x^n}
intmain()
{
//遍历区间for (inti=0; i<100000; ++i)
    {
intn=i;
intsum=0;
//判断是否为符合“水仙花”while (n)
        {
//n % 10 拿到最后一位,然后根据本身的位数求次方sum+= (Pow((n%10), Count(i)));//Pow计算每一位的n次方n/=10;
        }
if (sum==i)
        {
printf("%d ", sum);
        }
else        {
continue;
        }
    }
return0;
}

image.gif

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

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

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

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

image.gif编辑

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

相关文章
|
监控 Linux API
中断系列第四篇:中断爱养狗?
中断系列第四篇:中断爱养狗?
570 0
|
开发工具 C语言 Windows
【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程
【Qt 学习笔记】Qt 开发环境的搭建 | Qt 安装教程
1467 0
|
8月前
|
存储 数据安全/隐私保护 开发者
领取永久免费的ClawCloud云服务容器部署Alist网盘
领取永久免费的ClawCloud云服务容器部署Alist网盘,这是一款类似于 Vercel 和 Netlify 的在线开发平台,专为开发者和个人用户设计。如 Alist、Dify、frp 等,无需复杂的配置或高昂的成本。目前,平台提供永久免费的 5 刀/月额度,只需绑定一个注册超过 180 天的 GitHub 账号即可享受。
2533 10
|
SQL 关系型数据库 MySQL
京东面试:什么情况下 mysql RR不能解决幻读? RR隔离mysql如何实现?
老架构师尼恩在其读者交流群中分享了关于MySQL事务隔离级别的深入解析,特别针对RR级隔离如何解决幻读问题进行了详细讨论。文章不仅解释了ACID中的隔离性概念,还列举了四种事务隔离级别(未提交读、提交读、可重复读、串行读)的特点及应用场景。尼恩通过具体的例子和图表,清晰地展示了不同隔离级别下的并发事务问题(脏读、不可重复读、幻读)及其解决方案,特别是RR级隔离下的MVCC机制如何通过快照读和当前读来防止幻读。此外,尼恩还提供了相关面试题的解答技巧和参考资料,帮助读者更好地准备技术面试。更多详细内容和实战案例可在《尼恩Java面试宝典》中找到。
|
安全 编译器 程序员
全面解析C++11新特性:现代编程的新起点(上)
全面解析C++11新特性:现代编程的新起点
全面解析C++11新特性:现代编程的新起点(上)
|
存储 人工智能 JSON
|
关系型数据库
DB2 sqlcode:-117 sqlstate:42802
DB2 sqlcode:-117 sqlstate:42802
863 0
|
小程序 开发者
微信小程序狼人杀游戏代码及步骤
微信小程序狼人杀游戏代码及步骤
731 0
|
编解码 开发框架 数据挖掘
音视频开发常用工具 2
音视频开发常用工具
369 0