-3
Iは1から111111までのすべての自己同形数(例えば5× = 2 としてのそれらの正方形の最終桁に繰り返される数字、76x76 = 57 )を見つけるためにC++プログラムを書かれています。プログラムは、それが90625と109376.にコードを与えるために失敗したことを除いて正常に動作は次のとおりです。私のコードで最後の2つの数字が得られないのはなぜですか?
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
long int square;
int a, sum = 0, result, b;
for (int i = 1; i < 111111; i++) {
result = 1;
b = i;
while (b > 0){
b = b/10;
result = result * 10;
}
square = i * i;
a = square % result;
if(i == a){
sum = sum + i;
cout << i << endl;
}
}
cout << sum << endl;
return 0;
}
...コードを読み込み可能にフォーマットする –
たとえば、90625だけをテストし、各計算の前後にログを記録するようにコードを修正できます。 –
また、2つの 'int'を' long int'に掛けた結果を格納するポイントは何ですか? –