私は(ProjectEuler.netから - Problem 14)は、次の問題を抱えているプロジェクトオイラー溶液#14
次の反復シーケンスは正の整数の集合のために定義されています
n -> n/2 (n is even)
n -> 3n + 1 (n is odd)
は、上記のルールを使用し、 13で始まる、私たちは次のシーケンスを生成:
13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
をこのシーケンスは(13
から始まり、で仕上げていることがわかります)には10項が含まれています。まだ証明されていませんが(Collatz Problem)、開始番号はすべて1
で終わると考えられます。
最初の数字は100万未満で最長のチェーンを生成しますか?
注:チェーンが開始されると、条件は100万を超えることができます。
は、私が使用:
static int road (int n)
{
int road = 0;
while (n != 1)
{
if (n % 2 == 0)
n = n/2;
else
n = 3 * n + 1;
road++;
}
return road;
}
static void Main(string[] args)
{
int max = 0, num = 0;
for (int i = 1; i < 1000000; i++)
{
if (road(i) > max)
{
max = road(i);
num = i;
}
}
Console.WriteLine(num);
}
しかし、何も出力が印刷されません。
ありがとう、私はそれを考え出しました:) – Novak
良い。私は瑕疵を直接指摘したくありませんでした;-) – Joey
+1正しいレベルの舵取り – spender