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

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

16.10.2012, 12:10. Просмотров 1899. Ответов 15
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var m, n, s, i: integer;
begin
 write('Введите m (m<27): ');
 readln(m);
 for i:= 100 to 999 do
  begin
   s:= 0;
   n:= i;
   while n>0 do
    begin
     s:= s + n mod 10;
     n:= n div 10;
    end;
   if s=m
    then write(i: 4);
  end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 12:10
Ответы с готовыми решениями:

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

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

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

Найти все трехзначные числа, состоящие из разных цифр, сумма которых равна А
Найти все трехзначные числа, которые состоят из разных цифр, а их сумма ровна А...

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

15
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 12:15 #2
задание напишите, тут не все знатоки паскаля
1
LONSDALE12
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 9
16.10.2012, 12:22  [ТС] #3
дано натуральное число m(m<27), получить все трехзначные натуральные числа,сумма цифр которых равна m
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 12:43 #4
LONSDALE12, должно быть как-то так.

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>
    using std::cout;
    using std::cin;
#include <stdlib.h>
#include <locale.h>
#include <math.h>
int main(){
    setlocale(LC_ALL,"Russia");
    int m, n, s, i;
    
    cout << "Введите m (m<27): ";
        cin >> m;
    
    if ( 100 <= i <= 999 ){
        s = 0;
        n = i;
        if ( n>0 ){
            s = s + n * mod(10);
            n = n * div(10);
        }
        if ( s = m ){
            cout << i << ": 4";
        }
    }
system("pause");
return 0;
}
в програме есть ошибки я не знаю что такое mod, скажи что это и я исправлю код
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 12:56 #5
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
n * mod(10)
C++
1
n % 10
Добавлено через 1 минуту
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
n = n * div(10);
C++
1
n /= 10;
Добавлено через 23 секунды
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
if ( s = m ){
C++
1
if (s == m)
Добавлено через 33 секунды
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
if ( 100 <= i <= 999 ){
C++
1
if (100 <= i && i <= 999)
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 13:02 #6
Цитата Сообщение от I.M. Посмотреть сообщение
if (s == m)
, забыл когда в школе изучал паскаль что ( := ) оператор присваивание, а ( = ) оператор сравнивания, моя вина

тогда вот так

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>
    using std::cout;
    using std::cin;
#include <stdlib.h>
#include <locale.h>
#include <math.h>
int main(){
    setlocale(LC_ALL,"Rus");
    int m, n, s, i;
    
    cout << "Введите m (m<27): ";
        cin >> m;
    
    if ( 100 <= i <= 999 ){
        s = 0;
        n = i;
        if ( n>0 ){
            s = s + n %10;
            n = n /= 10;
        }
        if ( s == m ){
            cout << i << ": 4";
        }
    }
system("pause");
return 0;
}
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 13:05 #7
хАЛЕКСЕЙх, неужели у вас это компилируется?
и правильно работает
0
v.a.l.i.d
416 / 381 / 113
Регистрация: 21.09.2012
Сообщений: 913
16.10.2012, 13:06 #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
#include <iostream>
using namespace std;
 
int main()
{
    int m, n, s, i;
    
    cout << "Введите m(m<27): ";
    cin >> m;
    
    for (i=100; i<=999; i++)
    {
        s = 0;
        n = i;
        
        while (n>0)
        {
            s = s + n % 10;
            n = n / 10;
        }
        
        if (s == m)
            cout << i;
    }
 
    return 0;
}
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 13:08 #9
Цитата Сообщение от I.M. Посмотреть сообщение
if (100 <= i && i <= 999)
как я написал тоже компилятор не выдаёт ошибки

C++
1
100 <= i <= 999
, кстати в первом моём варианте я как ты написал, а потом до более лёгкого додумался, лёгкого имеется ввиду понимание

Добавлено через 57 секунд
хАЛЕКСЕЙх, неужели у вас это компилируется?
и правильно работает
I.M., да, только у меня просит написать m, и здесь всё заканчивается
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 13:10 #10
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
if ( 100 <= i <= 999 ){
Это неверный код
В С++ так писать нельзя
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 13:11 #11
Цитата Сообщение от V.A.L.I.D Посмотреть сообщение
for (i=100; i<=999; i++)
а я бы здесь поспорил

Добавлено через 38 секунд
Цитата Сообщение от I.M. Посмотреть сообщение
Это неверный код
В С++ так писать нельзя
ошибки нету, значит можно, это мой стандарт
0
v.a.l.i.d
416 / 381 / 113
Регистрация: 21.09.2012
Сообщений: 913
16.10.2012, 13:19 #12
хАЛЕКСЕЙх, а что там у меня неправильно? for i:= 100 to 999 do это же вроде цикл от 100 до 999. я так и сделал for (i=100; i<=999; i++)
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 13:26 #13
V.A.L.I.D,
Цитата Сообщение от V.A.L.I.D Посмотреть сообщение
i++)
меня вот это смущает, это же инкремент или декремент( как-то так )

и не обижайся, но выбирая между твоим и кодом I.M., я бы выбрал его потомучто его легче понять о чём там идёт речь
0
v.a.l.i.d
416 / 381 / 113
Регистрация: 21.09.2012
Сообщений: 913
16.10.2012, 13:35 #14
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
i++)
меня вот это смущает, это же инкремент или декремент
инкремент. он увеличивает переменную i на 1
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 13:37 #15
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
ошибки нету, значит можно, это мой стандарт
Ошибки нет, есть предупреждение. Что это выражение будет считаться не так, как хочется)
выражения
(100 <= 200 <= 300)
(100 <= 500 <= 300)
(100 <= 50 <= 300)
все являются true
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 14:21 #16
Цитата Сообщение от I.M. Посмотреть сообщение
Ошибки нет, есть предупреждение. Что это выражение будет считаться не так, как хочется)
выражения
(100 <= 200 <= 300)
(100 <= 500 <= 300)
(100 <= 50 <= 300)
все являются true
Убедил, я тут проверил, и переубедился =)
Теперь буду писать так
C++
1
if ( 100 <= i && i <= 999 );
0
16.10.2012, 14:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 14:21

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

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

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


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

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

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