recurse()
が呼び出されるたびにチェーンがインクリメントされるように、このコードを書きました。ただし、これは (デバッガーで見たものから) return; に到達するたびrecurse()
に、 の値を減らしますb
。私がやろうとしていることの背景が必要な場合、これはプロジェクト euler #14 です。
http://projecteuler.net/problem=14
private static void euler14()
{
int currentstart=1000000;
int longest = 0;
int current=0;
Integer chain=0;
for(int i = currentstart; i>0; i--)
{
recurse(i,chain);
if(chain > current)
{
current=chain;
longest=i;
}
chain = 0;
}
System.out.print("Euler 14: " + longest + "\n");
}
private static void recurse(int a, Integer b)
{
b++;
if(a==1)
{
return;
}
else if(a%2==0)
{
recurse((a/2), b);
}
else if(a%2==1)
{
recurse(((a*3)+1), b);
}
return;
}