Можно как то конвертировать в инт не вызывая 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д