Visual Studio C# Dersleri – C# ile Collatz Problemi Çözümü

Collatz problemi tüm tam sayıların 1’e indirebildiğini anlatan bir teoremdir.
Collatz problemi kuralları:
İfade olarak sayıya “x” diyelim
Bu sayı eğer çift ise “x/2” dir.
Bu sayı eğer tek ise “3x+1” dir.
Bu sanıya göre tüm sayılar, 1’e kolayca indirilebilir.Bu sayının büyüklüğüyle alakalı değildir.
Örneğin;
“x=4” diyelim.O halde; 4-2-1 olur.
“x=7” diyelim.O halde; 7-22-11-34-17-52-26-13-40-20-10-5-16-8-4-2-1 olur. Bu sayı kuramında 7’nin vardığı en büyük sayı 52’dir. şimdi bunu Collatz problemini C# ile nasıl çözülür ona bakalım . 🙂
aşağıdaki form tasarımını yapıp kodlarımız yazalım..

int sayi, enbuyuk=0, sayac=1;
            listBox1.Items.Clear();
            sayi=Int16.Parse(textBox1.Text);
            do
            {
                listBox1.Items.Add(sayi);
                if (sayi % 2 == 0)
                {
                    sayi = sayi / 2;
                }
                else
                {
                    sayi = sayi * 3 + 1;
                }
                if (sayi > enbuyuk) enbuyuk = sayi;
                sayac++;
            }
            while (sayi > 1);
            listBox1.Items.Add("1");
            textBox2.Text = sayac.ToString();
            textBox3.Text = enbuyuk.ToString();