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