added fordulo_3 feladat_2 megoldas for a small input
This commit is contained in:
71
fordulo_3/Program/Sorozat.cs
Normal file
71
fordulo_3/Program/Sorozat.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user