Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
артем36
0 / 0 / 0
Регистрация: 23.11.2017
Сообщений: 59
1

Поиск на отрезке количества чисел, сумма цифр которых есть однозначное число

24.11.2017, 10:52. Просмотров 1033. Ответов 10
Метки нет (Все метки)

1. Написать программу поиска на отрезке [a,b] ( a < b, a и b натуральные числа) количества чисел сумма цифр которых есть однозначное число
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2017, 10:52
Ответы с готовыми решениями:

Найти на отрезке все числа, сумма цифр которых дает заданное
Пользователь вводит числа х, a, b. Из промежутка от a до b найти все числа, сумма цифр которых дает...

Найти число на отрезке, сумма пятеричных цифр которого минимальна
Всем привет! Вот такую задачу задали. Я программу написал, но вот отчего - то она постоянно 0...

Найти те числа отрезка, суммы цифр которых есть число однозначное.
Люди! Помогите! Есть такая задача: &quot;Дан натуральный отрезок чисел . Найти те числа этого отрезка,...

Количество натуральных чисел на отрезке от А до В, сумма цифр которых четна
Даны два числа А и В. Подсчитайте кол-во натуральных чисел на отрезке от А до В, сумма цифр которых...

Подсчитайте количество натуральных чисел на отрезке от A до B, сумма цифр которых четна
Даны два числа A и B. Подсчитайте количество натуральных чисел на отрезке от A до B, сумма цифр...

10
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27992 / 15720 / 966
Регистрация: 15.09.2009
Сообщений: 67,816
Записей в блоге: 78
24.11.2017, 11:03 2
не пытайтесь дублировать темы.
0
SlavaSokolov
172 / 136 / 105
Регистрация: 14.04.2016
Сообщений: 735
24.11.2017, 11:08 3
артем36,
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
#include <string>
#include <iostream>
 
int summ(int number)
{
    std::string n = std::to_string(number);
 
    number = 0;
 
    for (int i = 0; i < (int)(n.size()); i++)
        number += n[i] - 48;
 
    return number;
}
 
int main()
{
    int a, b;
 
    std::cin >> a;
    std::cin >> b;
 
    for (int i = a; i < b; i++)
    {
        if (summ(i) < 10)
            std::cout << i << std::endl;
    }
 
    std::cin.ignore();
    std::cin.get();
}
0
артем36
0 / 0 / 0
Регистрация: 23.11.2017
Сообщений: 59
24.11.2017, 11:21  [ТС] 4
а если без массива
0
24.11.2017, 11:21
SlavaSokolov
172 / 136 / 105
Регистрация: 14.04.2016
Сообщений: 735
24.11.2017, 11:25 5
Циклом. Через остаток можно, но мне лень.
0
Байт
Эксперт C
22284 / 14037 / 2965
Регистрация: 24.12.2010
Сообщений: 29,925
24.11.2017, 11:26 6
Лучший ответ Сообщение было отмечено артем36 как решение

Решение

Цитата Сообщение от артем36 Посмотреть сообщение
а если без массива
Действительно.
C++
1
2
3
4
5
6
7
8
int summ(int number)
{ int s = 0;
    while(number) {
      s += number%10;
      number /= 10;
   }
   return s;
}
0
SlavaSokolov
172 / 136 / 105
Регистрация: 14.04.2016
Сообщений: 735
24.11.2017, 11:30 7
артем36,
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
int main()
{
    int a, b;
 
    std::cin >> a;
    std::cin >> b;
 
    for (int i = a; i < b; i++)
    {
        int summ = 0;
        int b = i;
 
        while (b) //while (b > 0)
        {
            summ += b % 10;
            b /= 10;
        }
 
        if (summ < 10)
            std::cout << i << std::endl;
    }
 
    std::cin.ignore();
    std::cin.get();
}
Добавлено через 1 минуту
Байт, да ладно! Я сделал нормальный алгоритм?

Добавлено через 2 минуты
Байт,можно в a сумму сохранять! -4 байта!
0
Байт
Эксперт C
22284 / 14037 / 2965
Регистрация: 24.12.2010
Сообщений: 29,925
24.11.2017, 11:31 8
Можно еще и так.
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
#include <string>
#include <iostream>
 
bool summLe10(int number)
{int s = 0;
    while(number) {
      s += number%10;
      if (s >= 10) return fallse;
      number /= 10;
   }
   return s;
}
 
int main()
{    int a, b;
 
    std::cin >> a;
    std::cin >> b;
 
    for (int i = a; i < b; i++)
    {
        if (summLe10(i))
            std::cout << i << std::endl;
    }
 
    std::cin.ignore();
    std::cin.get();
}
Но вообще-то задача допускает и более серьезную оптимизацию.
0
SlavaSokolov
172 / 136 / 105
Регистрация: 14.04.2016
Сообщений: 735
24.11.2017, 11:36 9
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
#include <iostream>
 
int main()
{
    int a, b;
 
    std::cin >> a;
    std::cin >> b;
 
    for (int i = a; i < b; i++)
    {
        a = 0;
        int buffer = i;
 
        while (buffer) //while (b > 0)
        {
            a += buffer % 10;
            buffer /= 10;
        }
 
        if (a < 10)
            std::cout << i << std::endl;
    }
 
    std::cin.ignore();
    std::cin.get();
}
0
Байт
Эксперт C
22284 / 14037 / 2965
Регистрация: 24.12.2010
Сообщений: 29,925
24.11.2017, 11:36 10
Цитата Сообщение от SlavaSokolov Посмотреть сообщение
Байт, да ладно! Я сделал нормальный алгоритм?
Ну да, рабочий.
И я вовсе не придираюсь. Просто, если я вижу другую возможность, почему бы не поделиться?
Цитата Сообщение от SlavaSokolov Посмотреть сообщение
можно в a сумму сохранять! -4 байта!
Можно. Но лично я такими букашками не питаюсь
0
SlavaSokolov
172 / 136 / 105
Регистрация: 14.04.2016
Сообщений: 735
24.11.2017, 11:39 11
артем36, выбирайте любой!

Добавлено через 2 минуты
Цитата Сообщение от Байт Посмотреть сообщение
Просто, если я вижу другую возможность, почему бы не поделиться?
А я надеялся, что медаль за говнокодинг получу. И стану в этой области лучшим.
Цитата Сообщение от Байт Посмотреть сообщение
Можно. Но лично я такими букашками не питаюсь
Мы не знаем, где это будет использоваться...
0
24.11.2017, 11:39
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2017, 11:39

Подсчитайте количество натуральных чисел на отрезке от А до В, сумма цифр которых четна
Тут ошибка какая-то, помогите найти var a,b,i,s,j:integer; begin readln(a); readln(b); for...

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

Подсчет количества двузначных чисел, сумма квадратов цифр которых делится на 13
Составить программу на языке TurboPascal для подсчета количества двузначных чисел, сумма квадратов...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.