using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Program { class Sorozat { public int KezdoErtek; public List Tagok = new List(); int[] kettoHatvanyok = new int[] { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608 }; public int TagokKiszamitasa(int ertek) { int ujertek; if (kettoHatvanyok.Contains(ertek)) { int index = 0; while (kettoHatvanyok[index] != ertek) { index++; } KettoHatvanyokTagokHozzaAdasa(index); return 1; } if (ertek == 1) { Tagok.Add(ertek); return 1; } if (ertek % 2 == 0) { ujertek = ertek / 2; } else { ujertek = ertek * 3 + 1; } Tagok.Add(ertek); return TagokKiszamitasa(ujertek); } public void KettoHatvanyokTagokHozzaAdasa(int index) { for (int i = index; i >= 0; i--) { Tagok.Add(kettoHatvanyok[i]); } } public Sorozat(Sorozat sorozat) { KezdoErtek = sorozat.KezdoErtek; Tagok = sorozat.Tagok; } public Sorozat(int kezdoErtek) { this.KezdoErtek = kezdoErtek; } } }