Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
2 / 2 / 0
Регистрация: 02.01.2020
Сообщений: 9

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

05.03.2020, 15:08. Показов 3730. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, я учусь на программиста, и мне попалась данная задача в лабароторной. Я искал ее решение в интернете, но не нашел, так что решил выложить свое, вместе с объяснением. Тем кто знает, как решить ее лучше, делитесь кодом в комментарии. Надеюсь кому-нибудь пригодиться данное решение. Так же забыл сказать, код я писал на embarcadero, так что когда будете копировать, то поудаляйте не нужные сточки кода.


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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#pragma hdrstop
#pragma argsused
 
#ifdef _WIN32
#include <tchar.h>
#else
  typedef char _TCHAR;
  #define _tmain main
#endif
 
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int N;
    cout << "Enter N: ";// Заданное n
    cin >> N;
    int arr[999];// массив натуральных чисел
    for (int i = 0; i < 999; i++) {
        arr[i] = i + 1;// Присваиваем массиву все натуральные числа от 1 до 999, поэтому arr[i] = i + 1
    }
    /*for (int i = 0; i < 999; i++) {
        cout << arr[i] << "  ";
    }*/
    if (N < 11) {
        cout << "Netu";// Если наше введенное число меньше 11, то нужных чисел нет, т.к. они не удовлетворяют условию
    }
    else if (N > 9 && N < 100) {// Если наше введенное число лежит то в данном промежутке, то нужные число есть, дальше способ их нахождения
        int ost, del;// Объявил две переменные, отвечаю за цифры числа.
        for (int i = 10; i < 100; i++) {
            //int ost, del;
            ost = arr[i] % 10; //Здесь нашли остаток от деления, тем самым мы нашли первую цифру. Например: у нас число 89.   89 % 10 = 9, первая цифра 9
            del = arr[i] / 10; // Здесь нашли вторую цифру, 89 / 10 = 8.
            if ((del + 1) == ost) {// Здесь мы проверяем, удовлетворяет ли наше число условию, а иммено, последовательная запись, т.е. первая цифра (остаток от деления) доджна быть на единицу больше, чем вторая
                if (arr[i] <= N) { // Если предыдущее условие выполняется, то ставим это условие, чтобы нам вывело числа, меньше введенного нами числа.
                    cout << arr[i] << "  ";
                }
            }
        }
    }
    else if (N > 99 && N < 1000) {//Если же наше число 100 и больше, то вот следующий алгоритм
        //cout << "You are gay";
        int ost_tp, del_tp;// Здесь все так же как и в случае, если n < 100 && n > 9, я просто на всякий случай другие переменные взял
        for (int i = 10; i < 100; i++) {
            //int ost, del;
            ost_tp = arr[i] % 10;
            del_tp = arr[i] / 10;
            if ((del_tp + 1) == ost_tp) {
                if (arr[i] <= 100) {
                    cout << arr[i] << "  ";// Так как нам нужно вывести нужные числа, начиная считать от самого начала натуральных чисел, т. е. от 1, то этот пункт тоже нужно вставить
                }
            }
        }
        int ost1, delit1, delit2, delit_top;// Так же переменные отвечающие за цифры
        for (int i = 100; i < 999; i++) {
            //int ost1, delit1, delit2;
            ost1 = arr[i] % 10; // Находим первую цифру, как раньше. Например, число 789. 789 % 10 = 9
            delit1 = arr[i] / 10;// Теперь пытаемся найти вторую цифру, но есть проблема. 789 / 10 = 78. А нам нужно получить цифру 8, поэтому я создал переменную delit_top.
            delit_top = delit1 % 10;// Здесь получаем нужную цифру. 78 % 10 = 8. Это наша нужная цифра.
            delit2 = arr[i] / 100;// Здесь находим первую цифру. 789 / 100 = 7
            if ((delit2 + 1) == delit_top) {// Так же проверяем удовлитворяет ли число условию, 7 + 1 == 8
                if ((delit_top + 1) == ost1) {// 8 + 1 == 9
                    if (arr[i] <= N) {// Выводим подходящие числа.
                        cout << arr[i] << "  ";
                    }
                }
            }
        }
    }
    getch();
    return 0;
}
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2020, 15:08
Ответы с готовыми решениями:

Циклы.Найти все натуральные числа не превосходящие заданного n, десятичная запись которых есть строго убывающая последовательность цифр
Может кто поможет новечку с заданием?%-)))заранее благодарю)С меня рек само собой))) Найти все натуральные числа не превосходящие...

Найти все натуральные числа <= n, десятичная запись которых - строго упорядоченная последовательность
Найти все натуральные числа, не превосходящие заданного числа N, десятичная запись которых есть строго возрастающая или строго убывающая...

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

12
Злостный нарушитель
 Аватар для Verevkin
10652 / 5801 / 1281
Регистрация: 12.03.2015
Сообщений: 26,794
05.03.2020, 15:32
Чо такое "строго возрастающая или строго"?
0
Злостный нарушитель
 Аватар для Verevkin
10652 / 5801 / 1281
Регистрация: 12.03.2015
Сообщений: 26,794
05.03.2020, 15:47
Так штоли?

0
2 / 2 / 0
Регистрация: 02.01.2020
Сообщений: 9
05.03.2020, 17:23  [ТС]
Или строго убывающая

Добавлено через 2 минуты
Не совсем, задание просит, чтобы ты нашел числа, которые меньше введенного, но имеет строго возрастающую запись цифр. Например 789. Ты ввел число 800, и нужно, чтобы тебе вывело все числа, котороые имеют строго возрастающую запись цифр
0
Злостный нарушитель
 Аватар для Verevkin
10652 / 5801 / 1281
Регистрация: 12.03.2015
Сообщений: 26,794
05.03.2020, 18:01
Цитата Сообщение от PixelenoK Посмотреть сообщение
Например 789.
689 - не подходит? Напиши чоткое определение строго возрастающей/убывающей последовательности.
0
2 / 2 / 0
Регистрация: 02.01.2020
Сообщений: 9
05.03.2020, 18:34  [ТС]
Нет, не подходит. Не увидел, что название темы не полное, сори. Вот вся задача.


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

Добавлено через 1 минуту
Поэтому 689 и не подходит, т.к. нужна строгая последовательность.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
05.03.2020, 18:38
PixelenoK, все таки, строго возрастающая/убывающая - это значит следующий больше/меньше ровно на 1?
Вообще-то, в математическом смысле 6 строго больше 4, и пишется 6 > 4, а не 6 >= 4, что есть нестрогое неравенство.
0
2 / 2 / 0
Регистрация: 02.01.2020
Сообщений: 9
05.03.2020, 18:44  [ТС]
Да, это значит на один больше или на один меньше. Нужно нестрогое равенство, потому что нам нужны числа, не превосходящие заданного, а если я введу число 789, оно подходит по условию, значит его тоже нужно вывести.
0
Злостный нарушитель
 Аватар для Verevkin
10652 / 5801 / 1281
Регистрация: 12.03.2015
Сообщений: 26,794
05.03.2020, 19:23
у меня перестал запускаться дебаггер.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Active debugger config: GDB/CDB debugger:Default
Сборка для обеспечения актуальности исходных текстов
Выбрана цель сборки: 
Debug
Добавление каталога исходных текстов: D:\Temp\thread2593527\
Добавление каталога исходных текстов: D:\Temp\thread2593527\
Добавление файла: D:\Temp\thread2593527\bin\Debug\thread2593527.exe
Изменение каталога на: D:/Temp/thread2593527/.
Set variable: PATH=.;D:\Soft\Dev-Cpp\MinGW64\bin;D:\Soft\Dev-Cpp\MinGW64;d:\Soft\RADStudio\20.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl;d:\Soft\RADStudio\20.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Win64;D:\Soft\Python\Scripts;D:\Soft\Python;d:\Soft\RADStudio\20.0\bin64\Win64;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;D:\Soft\Skype\Phone;d:\Soft\RADStudio\20.0\common\Bpl;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;d:\Soft\CodeBlocks\MinGW\bin;d:\Soft\FAR;\;C:\Users\admin\AppData\Local\Microsoft\WindowsApps;\\'C\Users\admin\AppData\Roaming\Python\Python37\Scripts
Запускается отладчик: D:\Soft\CodeBlocks\MinGW\gdb32\bin\gdb32.exe -nx -fullname -quiet  -args D:/Temp/thread2593527/bin/Debug/thread2593527.exe
сделано
Настройки точек останова
Название и версия отладчика: GNU gdb (GDB) 7.9.1
Starting the debuggee failed: No executable specified, use `target exec'.
Отладчик завершился со статусом 0
Кто шарит?
0
Злостный нарушитель
 Аватар для Verevkin
10652 / 5801 / 1281
Регистрация: 12.03.2015
Сообщений: 26,794
05.03.2020, 19:38
пришлось расчехлить devc++.
Автор, проверяй результат:
0
1 / 1 / 0
Регистрация: 26.02.2020
Сообщений: 174
29.04.2020, 09:58
Verevkin, PixelenoK,
Числа 20, 21, 30, 31 и 32 ... не имеют растущей последовательности.
Но в тот же момент :
Число 23568 имеет строго возрастающую последовательность.

Добавлено через 21 минуту
как быть )?
0
2 / 2 / 0
Регистрация: 02.01.2020
Сообщений: 9
29.04.2020, 17:30  [ТС]
Не могу понять суть вашего вопроса. Что значит ""
0
1 / 1 / 0
Регистрация: 26.02.2020
Сообщений: 174
29.04.2020, 18:51
Уже дошло ... извини
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2020, 18:51
Помогаю со студенческими работами здесь

Найти числа, десятичная запись которых есть строго возрастающая или строго убывающая последовательность
Добрый день. Хочу попросить помощи в составлении алгоритма, так как сам не могу ничего придумать. Задача такова: Найти все натуральные...

Найти натуральные числа до N, десятичная запись которых - строго возрастающая или строго убывающая последовательность
Найти все натуральные числа не превосходящие заданного n, десятичная запись которых есть строго возрастающая или строго убывающая...

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

Найти все натуральные числа (не больше N), десятичная запись которых - строго возрастающая последовательность цифр
Прошу помощи с этим заданием, заранее благодарна : Найти все натуральные числа, которые не больше заданного n, десятичная запись которых -...

Найти все натуральные числа, не превосходящие заданного и десятичная запись которых последовательность
Помогите, пожалуйста, составить программу на С++: Найти все натуральные числа , не превосходящие заданного N, десятичная запись которых...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru