2008/12/17

【C#】Collatz問題(コラッツ予想・角谷の問題)

以前書いた記事を読んで見たら馬鹿げたコードを書いていて恥ずかしかったので、今ならどうかくか。
ザッとっ書いてみた。

wikipedia:コラッツの問題
http://ja.wikipedia.org/wiki/コラッツの問題



using System;

namespace Sample_Collatz2
{
class Program
{
static void Main(string[] args)
{
decimal seed;
decimal.TryParse(Console.ReadLine(), out seed);

Console.WriteLine();
Collatz(seed, n => Console.WriteLine(n));
Main(null);
}

static void Collatz(decimal n, Action<decimal> a)
{
a(n);

if (1 < n)
{
Collatz(n % 2 == 0 ? n / 2 : n * 3 + 1, a);
}
}
}
}

0 件のコメント:

コメントを投稿