回复 9楼 风雨123
对的, 用取余的方式判断是否是同构数 应该是最好的方法不过 还有一点的可以改进的地方 就是取余的基数 可以用一个参数传给函数 在x累加后位数多了一位时 将这个基数*10
而不需要每次都从10 100 1000 等一个一个判断 这个在x y 位数特别多时 会很有效
下面是我写的代码 不知道对你有没有帮助
程序代码:
#include <iostream> using namespace std; bool is_tgnum(int num, int base) { return (num*num)%base == num; } int main() { int x, y, sum = 0; cin >> x >> y; for(int num(x), base(10); num <= y; num++){ while(num/base) base *= 10; if(is_tgnum(num, base)) sum += num; } cout << "The sum is " << sum << " ." << endl; }
人生是一场错过 愿你别蹉跎