本人洛谷网民,本人主页: 主页
正式开始
先读题:
如果一个三位数等于自身各位数字之立方和,则这个三位数就称为是水仙花数。
举个栗子:
153=1的3次方+5的3次方+3的3次方=1+125+27
所以153是水仙花数
请求所有的水仙花数。
既然要求出所有水仙花数,那就先写个循环,让变量i不断+1。然后判断其是否为水仙花数:
for(int i=100;i<1000;i++){
}
接着将他的个位、十位、百位分别别提取出来:
int bai,shi,ge;
for(int i=100;i<1000;i++){
bai=i/100;
shi=i/10%10;
ge=i%10;
}
然后判断这三位立方相加是否等于原数(即判断是否为水仙花数):
int bai,shi,ge;
for(int i=100;i<1000;i++){
bai=i/100;
shi=i/10%10;
ge=i%10;
if(100*bai+10*shi+ge==bai*bai*bai+shi*shi*shi+ge*ge*ge)
}
如果是,那就输出:
int bai,shi,ge;
for(int i=100;i<1000;i++){
bai=i/100;
shi=i/10%10;
ge=i%10;
if(100*bai+10*shi+ge==bai*bai*bai+shi*shi*shi+ge*ge*ge)
cout<<i<<' ';
}
加上头文件,完工(我只知道你们只看这儿):
#include<iostream>
using namespace std;
int main(){
int bai,shi,ge;
for(int i=100;i<1000;i++){
bai=i/100;
shi=i/10%10;
ge=i%10;
if(100*bai+10*shi+ge==bai*bai*bai+shi*shi*shi+ge*ge*ge)
cout<<i<<' ';
}
return0//必须写,不写爆0
}