|||
下学期要给本科生上《C++面向对象的程序设计》,这对我来讲是门新课。但是有讲过几次Java的基础,我还是很有信心讲好的。
今天备课时,用Code Blocks开源集成开发环境,解了谭浩强老师《C语言程序设计》中的一道习题:
求 之值,其中a是10进制的数字,n是位数。
程序最终版如下:
为了给函数起个好的英文名字,我用“循环整数”在Google中搜索,得知这种整数的英文名为Repdigit,汉语也译为纯位数。用Wikipedia搜Repdigit,又有了新的发现。
(1) 弗里曼数 (Friedman number)。它是一个能够用其组成数字,通过四则运算、括号和幂组成式子,结果是其自身的数。比如:
123456789和987654321都是弗里曼数。分别为:
123456789 = ((86 + 2 * 7)5 - 91) / 34
987654321 = (8 * (97 + 6/2)5 + 1) / 34
象343这样的,343 = (3 + 4)3,组成数字在式子中出现的顺序,与在该数中出现的顺序相同的弗里曼数,称为好弗里曼数。很显然,纯位弗里曼数(repdigit Friedman number)一定是好弗里曼数。最小的纯位弗里曼数为:
99999999 = (9 + 9/9)9-9/9 - 9/9
【参考文献】
[1] Beast Number: http://mathworld.wolfram.com/BeastNumber.html
[2] Repdigit: http://mathworld.wolfram.com/Repdigit.html
[3] Friedman Number http://www2.stetson.edu/~efriedma/mathmagic/0800.html
(2) 数字666也是纯位数之一,“六六大顺”在中国可是个超级吉利的数字。在西方基督教里,却是魔鬼的数字(Beast number)。数学迷们发现了数字666有许多奇妙的性质。Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-18 20:22
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社