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();

Pin It on Pinterest