問題#14を解決するために次のコードを使用しましたが、奇妙な理由で出力が表示されません。実行に時間がかかりすぎる可能性がありますか?PSIは、maxが答えになるはずがないことを知っていますが、それでも出力はありませんが、i<100のような小さい値の場合は出力を取得します。
#include <iostream>
long collatz(long);
int main()
{
using namespace std;
long i=3,max;
for(i=3;i<1000000;i++)
{
max=collatz(i-1);
if(collatz(i)>collatz(i-1))
{
max=collatz(i);
}
else
{
max=collatz(i-1);
}
}
cout<<max<<endl;
cin.clear();
cin.get();
}
long collatz(long n)
{
int count=0;
while(n!=1)
{
if(n%2==0)
{
n=n/2;
count+=1;
}
else
{
n=3*n+1;
}
}
return count;
}