網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
什么是水仙花數(shù):
指一個(gè)n位數(shù),其各位數(shù)字的n次方之和確好等于該數(shù)本身
例如:? ?
1? ? ? ? ?1^1=1;
153? ? ? 3^3+5^3+1^3=153;
問(wèn)題:求0~100000之間的水仙花數(shù),并打印出來(lái)
看題目,找突破口:
- 0~100000? 我可以想到用循環(huán)來(lái)判斷0~10000間的數(shù)字
- 由栗子可知:我們需要求數(shù)字是幾位
- 要用到次方,則我們需要引用math函數(shù)庫(kù)里的pow函數(shù)
- 求和,依舊要使用循環(huán)
那么開(kāi)始寫代碼,走一步思考一步:
#include <stdio.h> #include <math.h> int main() { int i = 0; for (i = 0; i <= 100000; i++) { int n = 1; // n 為位數(shù) int z = i; //經(jīng)過(guò)while后i改變,i未變前賦值給z,代替原值i進(jìn)行后面的計(jì)算 while (z / 10 != 0) //這里剛開(kāi)始直接用i進(jìn)行運(yùn)算 死循環(huán) { n++; z=z / 10; //用i運(yùn)算的話,當(dāng)i=10時(shí) i=i/10 直接等于1 ,死循環(huán),所以用變量z代替i } if (i == Sum(i, n)) //判斷和是否等于原值 printf("%d ",i); } return 0; }
看代碼一定要看后面的注釋,這里要注意的點(diǎn):
用了n代表位數(shù),求n時(shí)while循環(huán)會(huì)改變i值,不利于后面的計(jì)算,所以用z代替
設(shè)置函數(shù)Sum來(lái)計(jì)算和,函數(shù)代碼如下:
int Sum(int x, int y) //x接收i,y接收n { int k = 0; int num = 0; int sum = 0; for (k=0;k<y;k++) //循環(huán)求和 { num = pow(x % 10, y); //取出每一位的數(shù)字,求次方 sum += num; //累加求和 x/=10; //去掉最低位的數(shù)字 } return sum; //返回和 }
完整代碼如下:
#include <stdio.h> #include <math.h> int Sum(int x, int y) { int k = 0; int num = 0; int sum = 0; for (k=0;k<y;k++) { num = pow(x % 10, y); sum += num; x/=10; } return sum; } int main() { int i = 0; for (i = 0; i <= 100000; i++) { int n = 1; int z = i; while (z / 10 != 0) { n++; z=z / 10; } if (i == Sum(i, n)) printf("%d ",i); } return 0; }
運(yùn)行結(jié)果:
這樣找水仙花數(shù)就完成了? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/weixin_53316121/article/details/121411624
相關(guān)推薦
- 2022-06-21 .net中常用的正則表達(dá)式_C#教程
- 2022-06-29 python人工智能tensorflow函數(shù)tf.assign使用方法_python
- 2022-04-25 C#實(shí)戰(zhàn)之備忘錄的制作詳解_C#教程
- 2023-01-11 C++入門教程之引用與指針_C 語(yǔ)言
- 2023-03-28 Golang使用gzip壓縮字符減少redis等存儲(chǔ)占用的實(shí)現(xiàn)_Golang
- 2021-12-07 c++代碼各種注釋示例詳解_C 語(yǔ)言
- 2022-12-23 一文帶你了解Android中的網(wǎng)絡(luò)請(qǐng)求_Android
- 2022-01-31 有關(guān)“數(shù)據(jù)統(tǒng)計(jì)”的一些概念 -- PV UV VV IP跳出率等
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支