我已經開始使用C++並且在projecteuler.net上擺弄了一些問題。用C++編譯器的歐拉 - 編譯器不會在100 x 101後處理
我對問題的#4,這裏是我的代碼:
算法來檢查號碼是否是迴文:
bool forwardCheck(long posPal){
long n = posPal;
long rev = 0;
long dig;
while (posPal > 0){
dig = posPal % 10;
rev = rev * 10 + dig;
posPal = posPal % 10;
}
return n == rev;
}
主程序:
int main(){
long palindrome;
cout << "We are finding the largest palindrome made from two 3-digit numbers.\n"
<< "Calculating...\nCalculating...\nDone!\n";
for (long i = 100; i < 1000; i++){
for (long j = 100; j < 1000; j++){
long mult = i * j;
if (forwardCheck(mult)){
palindrome = mult;
//testing function above
cout << mult << " is a palindrome!\n";
} else
//testing function above
cout << mult << " is not a palindrome...\n";
}
}
cout << "The largest palindrome composed of two 3 digit numbers is: " << palindrome
<< endl;
return 0;
}
我在OS X上使用X11作爲我的g ++編譯器,我的問題是,使用上面的代碼,數字達到101,000作爲倍數,然後停止並停止。我的問題是:
爲什麼這樣做?我是否無效地接近?
我意識到,另一種方法是從long = 999開始向下迭代,但我已經編碼,但在「完成!」之後卡住了。聲明(是的,我知道這是有點雄心勃勃的程序,在算法運行之前,但我喜歡樂觀:)
由卡住和攤位,我的意思是CPU使用率峯值,但沒有寫入安慰。
作爲一般的邊注:
有沒有一種方法,我可以通過控制檯進行調試,即有它告訴我,它在做什麼類似Windows中的echo命令提示符?我是新來OS X太...
調試器是你的朋友 – 2010-11-30 08:37:32