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

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

05.03.2020, 15:08. Показов 3664. Ответов 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
10279 / 5703 / 1266
Регистрация: 12.03.2015
Сообщений: 26,415
05.03.2020, 15:32
Чо такое "строго возрастающая или строго"?
0
Злостный нарушитель
 Аватар для Verevkin
10279 / 5703 / 1266
Регистрация: 12.03.2015
Сообщений: 26,415
05.03.2020, 15:47
Так штоли?

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

Добавлено через 2 минуты
Не совсем, задание просит, чтобы ты нашел числа, которые меньше введенного, но имеет строго возрастающую запись цифр. Например 789. Ты ввел число 800, и нужно, чтобы тебе вывело все числа, котороые имеют строго возрастающую запись цифр
0
Злостный нарушитель
 Аватар для Verevkin
10279 / 5703 / 1266
Регистрация: 12.03.2015
Сообщений: 26,415
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
10279 / 5703 / 1266
Регистрация: 12.03.2015
Сообщений: 26,415
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
10279 / 5703 / 1266
Регистрация: 12.03.2015
Сообщений: 26,415
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
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru