Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
2 / 1 / 2
Регистрация: 01.07.2015
Сообщений: 53

Находить сумму цифр числа n, пока результат не будет состоять из одной цифры

17.02.2016, 16:45. Показов 5925. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
находить сумму цифр числа n( любого от 1 до 10^9)пока результат не будет состоять из одной цифры
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2016, 16:45
Ответы с готовыми решениями:

Находить сумму цифр числа пока она не будет равна 1 цифре
Нужно находить сумму до тех пор,пока она не будет равна 1 числу,например 9876=9+8+7+6=30=3+0=3. С использованием циклов. Добавлено...

Сложить цифры числа (до тех пор, пока не получится сумма из одной цифры)
Всем Доброго времени суток. Первая программа заключается в том что с клавиатуры вводится число например 45644, нужно занести его или в...

От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно
И опять: сколько можно? Задано натуральное число N. От данного числа вычтем сумму цифр этого числа, от полученного числа опять...

9
 Аватар для Tsin
1180 / 488 / 188
Регистрация: 30.12.2012
Сообщений: 1,278
Записей в блоге: 2
17.02.2016, 16:46
dimasiks, и как вы сами понимаете это задание?
0
2 / 1 / 2
Регистрация: 01.07.2015
Сообщений: 53
17.02.2016, 16:55  [ТС]
дано одно число n и надо найти сумму цифр числа.проблема в том что n может быть любым из промежутка и не знаю как все сопоставить!
0
115 / 92 / 66
Регистрация: 27.04.2014
Сообщений: 307
17.02.2016, 17:00
Цитата Сообщение от dimasiks Посмотреть сообщение
пока результат не будет состоять из одной цифры
А я не могу это сопоставить, что это такое?
Приведи пример чтоли..
Или дано число n=567, надо найти 5+6+7?
0
 Аватар для Tsin
1180 / 488 / 188
Регистрация: 30.12.2012
Сообщений: 1,278
Записей в блоге: 2
17.02.2016, 17:01
dimasiks, сумму цифр найти можно так:
C#
1
2
int n = 1434630;
int sum = n.ToString().Select(x => (int)(x - '0')).Sum();
Добавлено через 39 секунд
Цитата Сообщение от dimasiks Посмотреть сообщение
пока результат не будет состоять из одной цифры
А вот этот момент не раскрыт.
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
17.02.2016, 17:13
Цитата Сообщение от Tsin Посмотреть сообщение
А вот этот момент не раскрыт.
видимо складывать рекурсивно, пока не останется 1 цифра
0
418 / 316 / 241
Регистрация: 29.05.2010
Сообщений: 796
Записей в блоге: 1
17.02.2016, 18:19
dimasiks,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Foo(1259));
        }
 
        private static int Foo(int number)
        {
            for (;;)
            {
                var sum = Digits(number).Sum();
                if (sum > 9)
                {
                    number = sum;
                }
                else
                {
                    return sum;
                }
 
 
            }
        }
 
        static IEnumerable<int> Digits(int number)
        {
            while (number != 0)
            {
                yield return number % 10;
                number /= 10;
            }
        }
    }
}
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
17.02.2016, 18:37
Вы серьезно, ребят? LINQ, IEnumerable...

dimasiks, либо вопрос посчитать сумму цифр, либо ты сам не понимаешь, чего хочешь, и все что написано тебе не подходит.
Сумма цифр же считается элементарно:
C#
1
2
3
4
int num = 12345;
int sum = 0;
for (; num != 0; num /= 10)
    sum += num%10;
Добавлено через 2 минуты
Если рекурсивно, то чуть интереснее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static void Main(string[] args)
{
    int num = 12345;
    while (num >= 10)
    {
        num = Sum(num);
    }
    Console.WriteLine(num);
}
 
private static int Sum(int num)
{
    int sum = 0;
    for (; num != 0; num /= 10)
        sum += num%10;
    return sum;
}
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
17.02.2016, 18:50
Немного кунг фу, достойного любого индуса
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
 
namespace ConsoleApplication23
{
    class Program
    {
        static void Main(string[] args)
        {
            var number = 23456789;
 
            Func<int, int> summator = x => { while (x / 10 != 0) { var z = 0; while (x != 0) { z += x % 10; x /= 10; }; x = z; } return x; };
 
            Console.WriteLine(summator(number));
            Console.ReadKey();
        }
    }
}
PS: Никогда не пишите так в реальных проектах. Побьют-с.
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
17.02.2016, 19:38
Дополнил небольшую коллекцию методов расширения, на бОльшие числа, думаю, известно как переделать.

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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();
        }       
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2016, 19:38
Помогаю со студенческими работами здесь

Написать программу, которая будет находить сумму 10 цифр, вводимых с клавиатуры
Написать программу, которая будет находить сумму 10 цифр, вводимых с клавиатуры.

Дано число. Из данного числа нашли сумму цифр. С образованного числа вновь обрели сумму цифр, и.т.д. пока не образовалась одна цифра. Для данного числ
Дано число. Из данного числа нашли сумму цифр. С образованного числа вновь обрели сумму цифр, и.т.д. пока не образовалась одна цифра. Для...

Написать программу которая складывает числа до тех пор пока не получится число состоящее из одной цифры
написать программу которая складывает числа до тех пор пока не получится число состоящее из одной цифры. Пример: 5+5+5=15=1+5=6 у...

Определить функции: сумма цифр числа, вращение числа (цифры - в обратном порядке), деление чисел (результат - действительное число)
Определить класс: целое число. Определить функции: сумма цифр числа, вращение числа (цифры - в обратном порядке), деление чисел (результат...

Сформировать число, которое будет состоять только из четных восьмеричных цифр исходного
Задание: Дано целое неотрицательное число. Сформировать другое число, которое будет состоять только из четных восьмеричных цифр исходного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru