
玫瑰花數(shù),又稱水仙花數(shù),是指一個(gè)三位數(shù)各個(gè)位上數(shù)字的立方和等于該數(shù)本身的數(shù)。
例如153就是一個(gè)玫瑰花數(shù),因?yàn)?3+53+33=153。
接下來(lái)我們將用C++語(yǔ)言編寫(xiě)一個(gè)程序來(lái)判斷一個(gè)三位數(shù)是否為玫瑰花數(shù)。
首先,我們需要對(duì)每個(gè)三位數(shù)進(jìn)行拆分。通過(guò)除以100可以得到百位上的數(shù)字;通過(guò)取模運(yùn)算可以得到十位和個(gè)位上的數(shù)字。代碼如下:
int i = 100; //從100開(kāi)始循環(huán)
while(i<=999){
int a = i/100; //百位上的數(shù)字 int b = (i%100)/10; //十位上的數(shù)字 int c = i%10; //個(gè)位上的數(shù)字}
接下來(lái),我們需要計(jì)算這三個(gè)數(shù)字的立方和。這里采用了pow()函數(shù)來(lái)進(jìn)行冪運(yùn)算,并使用變量sum保存結(jié)果。代碼如下:
int sum = pow(a,3)+pow(b,3)+pow(c,3);
最后,我們只需判斷sum是否等于原始數(shù)字i即可得出結(jié)論。如果相等,則說(shuō)明i是一個(gè)玫瑰花數(shù)。
if(sum==i){
cout<}
完整代碼如下:
#include #include using namespace std;
int main(){
int i = 100; //從100開(kāi)始循環(huán) while(i<=999){ int a = i/100; //百位上的數(shù)字 int b = (i%100)/10; //十位上的數(shù)字 int c = i%10; //個(gè)位上的數(shù)字 int sum = pow(a,3)+pow(b,3)+pow(c,3); //立方和 if(sum==i){ //判斷是否為玫瑰花數(shù) cout<}
通過(guò)以上代碼,我們可以得到所有的三位玫瑰花數(shù)。
在實(shí)際應(yīng)用中,我們可以將以上程序封裝成一個(gè)函數(shù)來(lái)進(jìn)行調(diào)用。同時(shí),也可以根據(jù)需要對(duì)程序進(jìn)行優(yōu)化以提高效率。
總之,C++語(yǔ)言是一門強(qiáng)大的編程語(yǔ)言,在日常工作和學(xué)習(xí)中都有重要的應(yīng)用價(jià)值。通過(guò)不斷學(xué)習(xí)和實(shí)踐,我們可以更好地掌握它,并在實(shí)際項(xiàng)目中發(fā)揮出更大的作用。
標(biāo)簽: