Оптимизация работы класса - C# (180797)
Формулировка задачи:
Написал класс который оперирует с числами в разных СС.
Укажите на недостатки, на то что можно сделать получше, что можно добавить.
Код:
class sInt
{
ulong[] number;
ulong ss;
public void setNumber(ulong[] n, ulong ss)
{
bool isTrueNumber = true;
int i;
for (i = 0; i < n.GetLength(0); i++)//проверка, есть ли в числе цифры превосходящие основание сс
{
if (n[i] >= ss)
{
isTrueNumber = false;
break;
}
}
if (isTrueNumber)
{
number = n;
this.ss = ss;
}
}
public void translate(ulong nss)
{
if (ss != 10)
{
ulong nn = 0;
int dims = number.GetLength(0);
for (int i = 0; i < dims; i++)//переводим в 10-ю систему счисления
{
nn += number[i] * (ulong)Math.Pow(ss, (dims - i - 1));
}
number = new ulong[1];
number[0] = nn;
bool tn;
int sch = 0;
while (true)
{
if (number[sch] >= nss)
{
Array.Resize(ref number, sch + 2);
while (number[sch] >= nss)
{
number[sch] -= nss;
number[sch + 1]++;
}
sch++;
}
else break;
}
Array.Reverse(number);
}
}
public string print()
{
string o = "";
for (int i = 0; i < number.GetLength(0); i++) o += number[i].ToString()+'.';
return o;
}
}Решение задачи: «Оптимизация работы класса»
textual
Листинг программы
public ulong[] getNumber()
{
return tNumber;
}
public ulong getNotation()
{
return tNotation;
}