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