《编程题》循环语句的使用:编程求“水仙花数”
编程求“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=1m³ + 5m³ + 3m³。
提示:要学会用循环语句,用电脑一个数字一个数字不停的运算,然后把100~999里面所有符合条件的数给打印出来。
答案是:
153
370
371
407
解法一:一个do_while循环的代码:
#include <iostream> int main(int argc, const char * argv[]) { // 以三位数为主的解法 // int one,two,three = 0; int i = 100; int tmp = 0; do{ tmp = i; // 获得百位数 // one = tmp/100; // 获得十位数 // tmp = tmp%100; two =tmp/10; // 获得个位数 // three = tmp%10; tmp = one*one*one; tmp += two*two*two; tmp += three*three*three; if(i == tmp) { // 打印输出结果 // std::cout<<i<<"\n"; } ++i; }while(i<1000); }
解法二:三个for循环的解法
#include <iostream> int main(int argc, const char * argv[]) { int vLeft = 0; int vRight = 0; for(int i = 1;i<10;++i) { for(int j = 0;j<10;++j) { for(int k = 0;k<10;++k) { vLeft = i*100+j*10+k; vRight = i*i*i; vRight += j*j*j; vRight += k*k*k; if(vLeft == vRight) { // 打印输出结果 // std::cout<<vLeft<<"\n"; } } } } }