声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1232|回复: 0

[编程技巧] 关于一些有趣的数字的编程实现

[复制链接]
发表于 2010-9-9 15:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 qibbxxt 于 2010-9-9 15:37 编辑

最近编写了关于水仙花等数的程序,写了一个gui,发在这里,大家一起讨论,学习
ex_0909_3.jpg
narcissusNumber.m (7.81 KB, 下载次数: 0) narcissusNumber.fig (3.84 KB, 下载次数: 0)
核心代码如下:
  1. for i=str_n:en_n
  2. a=10^(i-1):(10^i-1);
  3. b=0:(i-1);
  4. y0=mod(floor(bsxfun(@rdivide,repmat(a',1,i),10.^fliplr(b))),10);
  5. switch val
  6. case 1 % 阿姆斯特朗数
  7. y=sum(y0.^i,2);
  8. case 2 % 3
  9. y=sum(bsxfun(@power,y0,y0),2);
  10. otherwise % The numbers that are equal to the sum of consecutive powers of their digits
  11. y=sum(bsxfun(@power,y0,1:i),2);
  12. end
  13. y=y(a'==y);
  14. yy=[yy;y];
  15. end
复制代码

1、阿姆斯特朗数
PPDI (Armstrong) Numbers
153 = 1^3 + 5^3 + 3^3
1634 = 1^4 + 6^4 + 3^4 + 4^4
54748 = 5^5 + 4^5 + 7^5 + 4^5 + 8^5
548834 = 5^6 + 4^6 + 8^6 + 8^6 + 3^6 + 4^6
1741725 = 1^7 + 7^7 + 4^7 + 1^7 + 7^7 + 2^7 + 5^7
24678050 = 2^8 + 4^8 + 6^8 + 7^8 + 8^8 + 0^8 +5^8 + 0^8
146511208 = 1^9 + 4^9 + 6^9 + 5^9 + 1^9 + 1^9 + 2^9 + 0^9 + 8^9
4679307774 = 4^10 + 6^10 + 7^10 + 9^10 + 3^10 + 0^10 + 7^10 + 7^10 + 7^10 + 4^10
82693916578 = 8^11 + 2^11 + 6^11 + 9^11 + 3^11 + 9^11 + 1^11 + 6^11 + 5^11 + 7^11 + 8^11
3、
3435 =3^3 +4^4 +3^3 +5^5
438579088 =4^4 +3^3 +8^8 +5^5 +7^7 +9^9 +0^0 +8^8 +8^8
...
4、The numbers that are equal to the sum of consecutive powers of their digits
如:
89 = 8^1 + 9^2
135 = 1^1 + 3^2 + 5^3
...
2646798 = 2^1 + 6^2 + 4^3 + 6^4 + 7^5 + 9^6 + 8^7
这是由仿真科技的lin2009提供

评分

1

查看全部评分

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 19:55 , Processed in 0.078568 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表