回复 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;
}

人生是一场错过 愿你别蹉跎



