TIA博途SCL編程學(xué)習(xí)33_水仙花數(shù)
1?| 題目一個(gè)n位的正整數(shù)等于其各位數(shù)字的n次方之和時(shí)被稱為阿姆斯特朗數(shù),當(dāng)n=3時(shí),又稱水仙花數(shù)。
編寫程序?qū)ふ?000以內(nèi)的水仙花數(shù)。
2 | 設(shè)計(jì)分析采用窮舉法,從100開始循環(huán),然后把每個(gè)數(shù)字的各個(gè)位上的數(shù)分解后,求立方和,驗(yàn)證是否符合水仙花數(shù)的定義從而得到結(jié)果。
3?| 創(chuàng)建功能或功能塊創(chuàng)建功能塊FB,命名為“NarcissisticNumber”。
4 | 定義接口變量具體接口變量定義見下圖:

注意定義了用來(lái)拆解自然數(shù)的多重實(shí)例,即調(diào)用自然數(shù)拆解功能塊(子函數(shù))。
5 | 程序代碼編寫程序代碼。如下圖:

注意浮點(diǎn)數(shù)的強(qiáng)制轉(zhuǎn)換“real#3”,即將整型數(shù)3強(qiáng)制轉(zhuǎn)換為浮點(diǎn)數(shù)。
代碼中使用了運(yùn)算符“**”,即求冪運(yùn)算,也可以使用之前發(fā)表的“SCL編程實(shí)例”第二篇中設(shè)計(jì)的求冪功能塊來(lái)替代“**”,當(dāng)然就沒有這么簡(jiǎn)潔了,這也是SCL編程的優(yōu)勢(shì)之一。
6 | 代碼測(cè)試在循環(huán)OB中調(diào)用FB-NarcissisticNumber,調(diào)用時(shí)會(huì)自動(dòng)創(chuàng)建背景數(shù)據(jù)塊,本例中該背景數(shù)據(jù)塊命名為“InstNarcissisticNumber”,該背景數(shù)據(jù)塊可以用來(lái)監(jiān)視和修改數(shù)據(jù)。
轉(zhuǎn)至在線并監(jiān)控程序。如下圖:

可以看到1000以內(nèi)的水仙花數(shù)有153、370、371、407共四個(gè)。
7 | 總結(jié)學(xué)習(xí)使用FOR循環(huán)語(yǔ)句;
學(xué)習(xí)使用IF...ELSE語(yǔ)句;
學(xué)習(xí)使用加賦值運(yùn)算符(組合賦值);
學(xué)習(xí)使用一維數(shù)組;
注意本例的程序結(jié)構(gòu),變量初始化的不同方法,特別注意使用臨時(shí)變量時(shí),一定要先賦值后使用。

水仙花數(shù)(Narcissistic number)也被稱為超完全數(shù)字不變數(shù)(pluperfect digital invariant, PPDI)、自戀數(shù)、自冪數(shù)、阿姆斯壯數(shù)或阿姆斯特朗數(shù)(Armstrong number),水仙花數(shù)是指一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
定義
水仙花數(shù)只是自冪數(shù)的一種,嚴(yán)格來(lái)說3位數(shù)的3次冪數(shù)才稱為水仙花數(shù)。
附:其他位數(shù)的自冪數(shù)名字
一位自冪數(shù):獨(dú)身數(shù)
三位自冪數(shù):水仙花數(shù)
四位自冪數(shù):四葉玫瑰數(shù)
五位自冪數(shù):五角星數(shù)
六位自冪數(shù):六合數(shù)
七位自冪數(shù):北斗七星數(shù)
八位自冪數(shù):八仙數(shù)
九位自冪數(shù):九九重陽(yáng)數(shù)
十位自冪數(shù):十全十美數(shù)
常見水仙花數(shù)
水仙花數(shù)又稱阿姆斯特朗數(shù)。
三位的水仙花數(shù)共有4個(gè):153,370,371,407;
四位的四葉玫瑰數(shù)共有3個(gè):1634,8208,9474;
五位的五角星數(shù)共有3個(gè):54748,92727,93084;
六位的六合數(shù)只有1個(gè):548834;
七位的北斗七星數(shù)共有4個(gè):1741725,4210818,9800817,9926315;
八位的八仙數(shù)共有3個(gè):24678050,24678051,88593477;
九位的九九重陽(yáng)數(shù)共有4個(gè): 146511208,472335975,534494836,912985153;
十位的自冪數(shù)只有1個(gè):4679307774
公眾號(hào):? 巨控電子( 掃碼關(guān)注?
公眾號(hào):? 巨控電子( 掃碼關(guān)注?
公眾號(hào):? 巨控電子( 掃碼關(guān)注?
公眾號(hào):? 巨控電子( 掃碼關(guān)注?