输出所有的“水仙花数”,所谓“水仙花 ”是指一个3位数,其各位数字之和等于该数本身,例如,153是一水仙花数,因为153=1^3+5^3+3^3
对于这个有两个方法
方法一:
#include <iostream>
using namespace std;
main(){
int ge,shi,bai,number;
for(number=100;number<1000;number++){
bai=number/100; //根据题目定义分别取出百,十,个,三位的数字
shi=(number%100)/10; //number%100取得两位数即十位和个位的结合,在除以10,则得到十位上的数字
ge=number%10;
if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge)
cout<<number<<endl;
}
}
方法二:
第一种方法是对目标数三位数进行处理,第二种则是反向思维,直接使用单个数,让单个数的组合达到题目的要求。
#include <iostream>
using namespace std;
main(){
int i,j,k;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if( (i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))
cout<<i<<j<<k<<endl;
}