Можно как то конвертировать в инт не вызывая Convert.ToInt32 ? - C#
Формулировка задачи:
Я наконец то решил почти задачу =) , но вот несостыковка ответ надо в int 32 ,у меня все в int 64 , так как данные заходят именно в нем .Все кажеться просто , но конвертировать я не могу , так как отсутсвует библиотека System и метод конверт не работает (по заданию) . Вот задание и решение
public class Number
{
public int DigitalRoot(long n)
{
long key = n;
long a=9;
long b=1;
return Root(key,a,b);
}
public long Root(long n, long y,long v)
{
long sum=0;
if (n > y)
{
y = 10 * y + 9;
return Root(n, y, 10 * v);
}
else if ((n - ((n / v) * v)) == 0)
{
return n / v;
}
else
{
sum += n / v;
n = n - ((n / v) * v);
sum += Root(n, 9, 1);
if (sum > 9)
{
return Root(sum, 9, 1);
}
else
{
return sum;
}
}
}
}
digital_root(16)
=> 1 + 6
=> 7
digital_root(942)
=> 9 + 4 + 2
=> 15 ...
=> 1 + 5
=> 6
digital_root(132189)
=> 1 + 3 + 2 + 1 + 8 + 9
=> 24 ...
=> 2 + 4
=> 6
digital_root(493193)
=> 4 + 9 + 3 + 1 + 9 + 3
=> 29 ...
=> 2 + 9
=> 11 ...
=> 1 + 1
=> 2
Решение задачи: «Можно как то конвертировать в инт не вызывая Convert.ToInt32 ?»
textual
Листинг программы
static int DigitalRoot(long inputLongNum)
{
while(inputLongNum > 9)
{
long sum = 0;
while(inputLongNum>0)
{
sum += inputLongNum % 10;
inputLongNum /= 10;
}
inputLongNum = sum;
}
return (int)inputLongNum;
}