網站首頁 編程語言 正文
什么是水仙花數:
指一個n位數,其各位數字的n次方之和確好等于該數本身
例如:? ?
1? ? ? ? ?1^1=1;
153? ? ? 3^3+5^3+1^3=153;
問題:求0~100000之間的水仙花數,并打印出來
看題目,找突破口:
- 0~100000? 我可以想到用循環來判斷0~10000間的數字
- 由栗子可知:我們需要求數字是幾位
- 要用到次方,則我們需要引用math函數庫里的pow函數
- 求和,依舊要使用循環
那么開始寫代碼,走一步思考一步:
#include <stdio.h> #include <math.h> int main() { int i = 0; for (i = 0; i <= 100000; i++) { int n = 1; // n 為位數 int z = i; //經過while后i改變,i未變前賦值給z,代替原值i進行后面的計算 while (z / 10 != 0) //這里剛開始直接用i進行運算 死循環 { n++; z=z / 10; //用i運算的話,當i=10時 i=i/10 直接等于1 ,死循環,所以用變量z代替i } if (i == Sum(i, n)) //判斷和是否等于原值 printf("%d ",i); } return 0; }
看代碼一定要看后面的注釋,這里要注意的點:
用了n代表位數,求n時while循環會改變i值,不利于后面的計算,所以用z代替
設置函數Sum來計算和,函數代碼如下:
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++) //循環求和 { num = pow(x % 10, y); //取出每一位的數字,求次方 sum += num; //累加求和 x/=10; //去掉最低位的數字 } 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; }
運行結果:
這樣找水仙花數就完成了? ? ? ? ? ? ? ? ? ? ??
原文鏈接:https://blog.csdn.net/weixin_53316121/article/details/121411624
相關推薦
- 2022-09-19 Nginx最大連接數配置詳解_nginx
- 2022-04-15 ASP.NET?Core基礎之Startup類_基礎應用
- 2022-12-26 C#操作xml文件之Linq?To?Xml詳解_C#教程
- 2022-03-26 oracle自動統計信息時間的修改過程記錄_oracle
- 2022-05-07 react中的雙向綁定你真的了解嗎_React
- 2022-06-08 Python?全局空間和局部空間_python
- 2022-09-30 Python實現圖像增強_python
- 2022-11-15 ASP.NET?MVC遍歷驗證ModelState的錯誤信息_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支