Находить сумму цифр числа n, пока результат не будет состоять из одной цифры - C#
Формулировка задачи:
находить сумму цифр числа n( любого от 1 до 10^9)пока результат не будет состоять из одной цифры
Решение задачи: «Находить сумму цифр числа n, пока результат не будет состоять из одной цифры»
textual
Листинг программы
using System; using System.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int val = 35353535; Console.WriteLine(val); Console.WriteLine(val.DigitsSum()); Console.WriteLine(val.OneDigitDigitsSum()); Console.ReadKey(); } } static class IntExtentions { public static int Fact(this int n) //метод расширения для нахождения факториала { return n == 0 ? 1 : n * Fact(n - 1); } public static int SumDigitsFacts(this int n) //метод расширения для нахождения суммы факториалов цифр { return n == 0 ? n : (n % 10).Fact() + (n / 10).SumDigitsFacts(); } public static int DigitsSum(this int n) //метод расширения для нахождения суммы цифр { int nextn = n / 10; return nextn == 0 ? n : n % 10 + nextn.DigitsSum(); } public static int OneDigitDigitsSum(this int n) //метод расширения для нахождения суммы цифр до одной { int sum = DigitsSum(n); return sum < 10 ? sum : sum.OneDigitDigitsSum(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д