魔术数字的举例
例1:price_tax = 1.05 * price
例1是对输入的价格(price)计算含税(price_tax)售价的程式。 但税率并不是万年不变,当政府调整税率时,会有修改程式的必要。 这里“1.05”就是一种魔术数字,“为什么是1.05”会让人无法马上了解。
下面是去掉魔术数字的范例,程式容易了解也容易修正。
例1 (修正):TAX = 0.05 price_tax = (1.0 + TAX) * price
例2:setColor(text, 0xffffff)
例2是设定以白色显示程式码。 然而十六进制的色码0xffffff很难直觉看懂是“白色”,故也算是一种魔术数字。
下面是一种拿掉魔术数字的方式。
例2 (修正):white = 0xffffff setColor(text, white)
像这样,将魔术数字置换成常数或列举型别是经常用来解决魔术数字问题的手段。由于常数可以赋予易懂的名称,可使帮助阅读者了解数值的意义。
当然,在程式初始化部分定义的常数列表不称为魔术数字。
什么叫魔术数
有那么一些数:把它接写在某个自然数的末尾,自然数与它连接而成的数能被它整除,这样的数就叫魔术数.
一位的魔术数是:1,2,5.它们就是10的约数.
二位的魔术数是:10,20,25,50.它们就是100的约数中的二位数.
三位的魔术数是:100,125,200,250,500.它们就是1000的约数中的三位数.
一般地,n位数中的魔术数是10的n次幂的所有n位约数.
何为魔术数?
1986年全国初中数学竞赛题***题第3小题提到魔术数,原题是:将自然数N接写在每一个自然数的右面,如果得到的新数都能被N整除,那么N称为魔术数,在小于130的自然数中,魔术数的个数是。
乍看起来,问题较棘手,但认真分析,并不难解决。
大家在理解魔术数定义时,就注意这几个字:“接写”、“每一个”(即任何一个),“都能”。
例如,把偶数2接写在任何一个自然数右面得到的新数都是偶数,都能被2整除,所以2是魔术数。
怎样求魔术数呢?
设a为魔术数,把a接写在任何一个自然数x的右面得到的新数xa。
1.若a为一位数,则xa=10x+a能被a整除,即对任何一个自然数x,10x都能被a整除,就是10应是a的倍数,则a只能是1,2,5共3个。
2.若a为二位数,则xa=100x+a能被a整除,100应是a的倍数,a只能是10=1×10,20=2×10,25,50=5×10,共4个。
3.若a为三位数,则xa=1000x+a能被a整除,1000应是a的倍数,a只能是100=1×102,125,200=2×102,250=25×10,500=5×102,共5个。
同理,若a为四位数,a只能是1000=1×103,2000=2×103,5000=5×103,1250=125×10,2500=25×102。
一般地,当a为n位数(n≥3)时,魔术数可用以下形式表示:
1×10n-1,2×10n-1,5×10n-1,25×10n-2125×10n-3。
这样,我们便可以求出小于任何给定的自然数的魔术数及其个数。小于130的魔术数共9个:1,2,5,10,20,25,50,100,125,小于10的魔术数为3个,小于100的魔术数为7个,小于1000的魔术数为12个,小于10000的魔术数为17个……
我们观察n位数的魔术数的个数:
当n=1时为3个;当n=2时为4个;当n=k(k≥3)时总是5个。
所以,n≥2时,n增加1,n位数的魔术数的个数就增加5个。或者说,n位数(n≥2)以内的魔术数的个数正好组成公差为5的等差数列:7,12,17,22,27,32,……。
魔术数小于1000有多少个
魔术数小于1000有13个。1、2、5、10、20、25、50、100、125、200、250、500、1000.这13个数中的任何一个放在任意(注意:是“任意”)自然数右边,得到的新数均能被该数整除.
什么称为“魔术数”
将自然数N接写在每一个自然数的右面,如果得到的新数都能被N整除,那么N称为魔术数.
我们自然能想到,一位数中,1,2,5是魔术数。
1是魔术数自然一目了然,因为任何数除以1仍得那个数。
用2试试,12、22、32…、112、…7132…都能被2整除。
5也是如此:15、25、35、…115、…7175…也都能被5整除。
魔术数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于魔术数字算对方年龄、魔术数的信息别忘了在本站进行查找喔。