Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
marko666
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 4
#1

Найти все натуральные числа из промежутка от 1 до 200, у которых сумма цифр равна S - C++

26.10.2015, 07:19. Просмотров 739. Ответов 7
Метки нет (Все метки)

Найти все натуральные числа из промежутка от 1 до 200, у
которых сумма цифр равна S (S вводить с клавиатуры).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2015, 07:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти все натуральные числа из промежутка от 1 до 200, у которых сумма цифр равна S (C++):

Найти все натуральные числа из промежутка от 1 до 200, у которых сумма делителей равна S
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма...

Найти все натуральные числа из промежутка от 1 до 200, у которых сумма чётных делителей равна N
Нужна помощь,срочно!!!!!надо программы написать,они не большие,для знающих...

Найти все натуральные числа из промежутка от 1 до 200, у которых сумма четных делителей равна N (проверить)
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма четных...

Найти все натуральные числа из промежутка от x1 до x2, у которых сумма делителей равна S
Найти все натуральные числа из промежутка от 1 до 200, у которых сумма...

Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N
Найти все натуральные числа из промежутка от 1 до 200, у которых количество...

Получить все трехзначные натуральные числа, сумма цифр которых равна m
var m, n, s, i: integer; begin write('Введите m (m<27): '); readln(m); ...

7
Redzep
197 / 133 / 88
Регистрация: 21.12.2014
Сообщений: 369
26.10.2015, 09:55 #2
C++
1
2
3
    int S;
    cin >> S;
    for (int i = 1; i <=200; i++) if ((i/100)+((i/10)%10)+(i%10)==S) cout << i << endl;
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
26.10.2015, 10:08 #3
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
#include <iostream>
 
int sum_digits (int n)
{
    int result = 0;
    while (n!=0)
    {
        result += n % 10;
        n /= 10;
    }
    return result;
}
 
int main()
{
    int S;
    std::cin >> S;
    for (int i = 1; i <= 200; i++)
    {
        if (sum_digits (i) == S)
        {
            std::cout << i << "\n";
        }
    }
}
0
AlexVRud
477 / 189 / 72
Регистрация: 04.07.2014
Сообщений: 530
26.10.2015, 11:05 #4
Зачем что-то проверять, когда можно просто построить ряд:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main() {
 
  for(int a3=0; a3<2; ++a3) {
    for(int a2=0; (a3+a2)<=5; ++a2) {
      int a1 = 5-a2-a3;
      int n = ((a3*10)+a2)*10+a1;
      std::cout << n << std::endl;
    }
  }
  return 0;
}
1
Redzep
197 / 133 / 88
Регистрация: 21.12.2014
Сообщений: 369
26.10.2015, 11:15 #5
Цитата Сообщение от AlexVRud Посмотреть сообщение
Зачем что-то проверять, когда можно просто построить ряд:
Зачем строить какие-то ряды, когда можно просто проверить сумму?
0
_Ivana
3232 / 1860 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
26.10.2015, 14:38 #6
Цитата Сообщение от Redzep Посмотреть сообщение
Зачем строить какие-то ряды, когда можно просто проверить сумму?
Чтобы тупым не быть, компьютер не мучать, ракеты чтоб летали точнее, приложения не зависали и т.п. - выбирайте на ваш вкус.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
26.10.2015, 14:50 #7
Цитата Сообщение от AlexVRud Посмотреть сообщение
Зачем что-то проверять, когда можно просто построить ряд:
Только дорабатывать надо. У Вас ряд хорошо строится, только мало того, что новичкам непонятен, так еще текущая версия проигрывает обычному перебору цифр в итоговом результате. Задавать разные S даже до 18 и пойдут косяки.

А так, конечно, если есть возможность генерации, разумеется надо генерировать.
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
26.10.2015, 15:05 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
bool check_sum(int n, int s) {
    while (n != 0) {
        s -= n % 10;
        if (s < 0) { return false; }
        n /= 10;
    }
    return s == 0;
}
 
int main()
{
    int s;
    cin >> s;
    for (int i = 1; i <= 200; i++) {
        if (check_sum(i, s)) { cout << i << endl; }
    }
    return 0;
}
0
26.10.2015, 15:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2015, 15:05
Привет! Вот еще темы с решениями:

Получить все трехзначные натуральные числа, сумма цифр которых равна n
дано натуральное число &lt;=27 найти все трёхзначные числа сумма цифр которых...

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

Найти все целые числа из промежутка от 100 до 300, у которых сумма делителей равна k
Найти все целые числа из промежутка от 100 до 300, у которых сумма делителей...

Найти все трехзначные натуральные числа, сумма которых равна их произведению
найти все трехзначные натуральные числа сумма которых равна их произведению. ...


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

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

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