Neumann_Janos_Verseny/fordulo_3/Program/Sorozat.cs

72 lines
1.6 KiB
C#

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<int> Tagok = new List<int>();
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;
}
}
}