我已经开始使用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