输出为: 192 384 576 219 438 657 273 546 819 327 654 981
Process returned 0 (0x0) execution time : 0.293 s Press any key to continue.
肯定还有更好的办法
更新:
#include <iostream> using namespace std; void result(int num, int &result_add, int &result_mul) { int i, j, k; i = num / 100; //百位 j = num / 10 % 10; //十位 k = num % 10; //个位 result_add += i + j + k; //分解出来的位数相加 result_mul *= i * j * k; //相乘 } int main() { int i, j, k; int result_add, result_mul; for(i = 123; i <=329; i++) { j = i * 2; k = i * 3; result_add = 0; result_mul = 1; result(i, result_add, result_mul); result(j, result_add, result_mul); result(k, result_add, result_mul); if(result_add == 45 && result_mul == 362880) cout<<i<<' '<<j<<' '<<k<<' '<<endl; } return 0; }换用c++, 用引用来改变实参
注意1到9相加一定为45 1到9相乘也一定为定值
最大数为987 除以3后 为329 所以sum1有限制
可以从直接从三位数开始找 只要满足和和积符合 这样就不用判断重复问题 就说明没有重复 比较方便!!!不用自己加
