Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139

Определить, стоят ли цифры числа в натуральном ряду через одну

11.01.2011, 20:56. Показов 4117. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача 4.22
Составить функцию, которая для целого числа определяет, стоят ли его цифры в натуральном ряду через одну.
В вызывающей функции main() организовать ввод целого числа N из диапазона от 1 до 9 и среди всех N-значных целых чисел найти числа, запись которых состоит из цифр, стоящих в натуральном ряду через одну. Вывести их на экран и подсчитать количество таких чисел.
В вызывающей функции main() организовать контроль ввода числа N.

Что значит цифры в натуральном ряду через одну? Приведите пример.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2011, 20:56
Ответы с готовыми решениями:

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

Определить, есть ли в заданном натуральном числе указанные цифры
В школе задали, кто знает как решить ? Спасибо. Дано натуральное число. Определить, есть ли в нем цифры а и b.

Определить, являются ли цифры заданного двузначного числа соседними в натуральном ряду
2) Дано двузначное число. Являются ли цифры этого числа соседними в натуральном ряду.

31
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
11.01.2011, 22:03
Студворк — интернет-сервис помощи студентам
или так... произведение строки умноженное на сумму столбца, на квадрат элемента все это под корнем...

для каждой из матриц.....эмм.... мдя...

Добавлено через 1 минуту
голову сломать мона.... над к математикам наверно в отдельную тему кинуть... чет я ваще никак))
1
 Аватар для Mayonez
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
11.01.2011, 22:07
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
#include <iostream>
#include <vector>
#include <cmath>
 
//Составить функцию, которая для целого числа определяет, 
//стоят ли его цифры в натуральном ряду через одну.
bool ok_cufru_stoiat_cherez_odny(int someDigit)
{
   std::vector <int> digits;
   while (someDigit)
   {
      digits.push_back(someDigit%10);
      someDigit /= 10;
   }
   
   for (int i = 1; i < digits.size(); i++)
      if (digits[i-1] - digits[i] != 2) return 0;
   
   return 1;
}
//------------------------------------------------------------------------------
int main()
{
//В вызывающей функции main() организовать ввод целого числа N 
//из диапазона от 1 до 9
   int N = 10;
//В вызывающей функции main() организовать контроль ввода числа N.
   while (N < 1 || N > 9)
   {
      std::cout << "Введите цыфру от 1 до 9: ";
      std::cin >> N;
   }
//------------------------------------------------------------------------------  
//и среди всех N-значных целых чисел найти числа, запись которых 
//состоит из цифр, стоящих в натуральном ряду через одну.
//Вывести их на экран и подсчитать количество таких чисел.
   int start = static_cast<int>( pow(10.0, N-1) );
   int finish = static_cast<int>( pow(10.0, N) );
   int counter = 0;
   for (int i = start; i < finish; i++)
      if ( ok_cufru_stoiat_cherez_odny(i) )
      {
            std::cout << i << std::endl;
            counter++;
      } 
   std::cout << "Количество таких чисел: " << counter << std::endl;
//------------------------------------------------------------------------------
 
   return 0;
}


Цитата Сообщение от Chelioss Посмотреть сообщение
Что значит цифры в натуральном ряду через одну? Приведите пример
натуральный ряд цыфр
1 2 3 4 5 6 7 8 9
берем число 246
1 2 3 4 5 6 7 8 9
в натуральном ряду цыфры даного числа идут через одну
1
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
11.01.2011, 22:09
о как
1
 Аватар для Mayonez
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
11.01.2011, 22:17
если неважен порядок следования цыфр:
3 7 5 9
тоесть цыфры то идут через одну, но в записи числа не попорядку
1 2 3 4 5 6 7 8 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
//Составить функцию, которая для целого числа определяет, 
//стоят ли его цифры в натуральном ряду через одну.
bool ok_cufru_stoiat_cherez_odny(int someDigit)
{
   std::vector <int> digits;
   while (someDigit)
   {
      digits.push_back(someDigit%10);
      someDigit /= 10;
   }
   sort(digits.begin(), digits.end());
   for (int i = 1; i < digits.size(); i++)
      if (digits[i] - digits[i-1] != 2) return 0;
   
   return 1;
}
//------------------------------------------------------------------------------
int main()
{
//В вызывающей функции main() организовать ввод целого числа N 
//из диапазона от 1 до 9
   int N = 10;
//В вызывающей функции main() организовать контроль ввода числа N.
   while (N < 1 || N > 9)
   {
      std::cout << "Введите цыфру от 1 до 9: ";
      std::cin >> N;
   }
//------------------------------------------------------------------------------  
//и среди всех N-значных целых чисел найти числа, запись которых 
//состоит из цифр, стоящих в натуральном ряду через одну.
//Вывести их на экран и подсчитать количество таких чисел.
   int start = static_cast<int>( pow(10.0, N-1) );
   int finish = static_cast<int>( pow(10.0, N) );
   int counter = 0;
   for (int i = start; i < finish; i++)
      if ( ok_cufru_stoiat_cherez_odny(i) )
      {
            std::cout << i << std::endl;
            counter++;
      } 
   std::cout << "Количество таких чисел: " << counter << std::endl;
//------------------------------------------------------------------------------
   
   return 0;
}


Добавлено через 43 минуты
или я тоже не так понял???
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
11.01.2011, 22:21  [ТС]
Спасибо, конечно, но у нас в вузе по другому учат. У нас нет std::, а есть #include <iostrea> using namespace std; Массив создается так int mas[const]( в статике). Нужно программу сделать с помощью двух функций - main и функция проверки числа. И т.д.) Уже готова почти, только исправить.
0
 Аватар для Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
11.01.2011, 22:23
Mayonez, думаю, что 3759 не подходит... цифры его идут через одну если их отсортировать... а это уже другое число выходит. думаю, что разница между двумя СОСЕДНИМИ цифрами должна быть 2. Например, 7535...

Добавлено через 1 минуту
Chelioss, а векторы изучали ?
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
11.01.2011, 22:26  [ТС]
Нет. В одной лабе есть вектор, но это просто одномерный массив mas[n].
0
 Аватар для Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
11.01.2011, 22:30
ну... задание ты понял. сможешь сам под массивы переделать?
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
11.01.2011, 22:54  [ТС]
Понял как работает ваша функция проверки, но надо без массивов. И digits[i] - digits[i-1] надо, думаю, по модулю

Добавлено через 10 минут
Решил. Работает, вроде, правильно.
Visual studio 2008

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
bool proverka(int chislo, int N)
{
    int digit=0,sleddigit=0;
    for(int i=0;i<N-1;i++)
    {
        digit=chislo%10;
        chislo/=10;
        sleddigit=chislo%10;
        if((sleddigit-2!=digit)&&(sleddigit+2!=digit))
            return false;
    }
    return true;
}
#include <iostream>
using namespace std;
bool proverka(int , int );
void main(void)
{
    setlocale(LC_ALL,"rus");
    char otv='y';
    do
    {
        int N=0;
        do
        {
            cout << "Введите число в диапазоне от 1 до 9 ";
            cin >> N;
        }while((N<1)||(N>9));
 
        int chislo=0,c=9;             
        for (int i=0;i<N;i++) 
        {   
            chislo=chislo*10+c;     
            c--; 
        }
        int minNchislo=1;
        for(int i=0; i<N-1; ++i)
            minNchislo*=10;
        int count=0;
        for(;chislo>=minNchislo; --chislo)
            if(proverka(chislo,N))
            {
                cout << chislo << endl;
                ++count;
            }
        cout << "Количество таких чисел равно " << count << endl;
 
        cout << "Повторить? ";
        cin >> otv;
    }while(otv=='y');
 
}
Добавлено через 1 минуту
Только не понятно что должны быть при N=1. У меня вывелись все цифры от 9 до 1.
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
12.01.2011, 21:32
думаю так оно и должно быть, так как если число однозначное то из всех однозначных чисел они все будут стоять в ряду относительно через одну.... думаю правильно все вышло

Добавлено через 2 минуты
эмм... единственное что должно быть так это от 1 до 9 а не наоборот наверно...

Добавлено через 8 минут
Цитата Сообщение от Chelioss Посмотреть сообщение
Code
1
2
3
4
5
int chislo=0,c=9; 
for (int i=0;i<N;i++) 
{
 chislo=chislo*10+c; 
c--;
}
както так
Code
1
2
3
4
5
6
int chislo=0,c=1;
 for (int i=0;i<N;i++) 
{
 chislo=chislo*10+c; 
c++;
}
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
13.01.2011, 00:27  [ТС]
cibertronic
В моем случае берется макс. число - это N раз 9. По вашему тогда надо делать мин. число, а это 1 с N-1 нулями, т.е., например, при N=4 будет 1000, а у вас 1234, т.е. числа в диапазоне 1000-1233 просто откидываются.
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
13.01.2011, 17:07
эмм.... мда... ссори...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2011, 17:07

Числа, цифры которых являются соседними в натуральном ряду
Доброго времени суток форумчане. Есть задание, которое нужно реализовать на Delphi. В общем, я как ни пытался, что ни...

Являются ли цифры двузначного числа соседними в натуральном ряду
Дано двузначное число. Является ли цифры этого числа соседними в натуральном ряду?

Вывести те числа чьи цифры являются соседями в натуральном ряду
даны границы промежутка двухзначных чисел. Среди них вывести те, чьи цифры являются соседями в натуральном ряду (например: 12, 10, 23...)....

Определить количество и сами числа сверхпростых чисел в натуральном ряду
Определить количество и сами числа сверхпростых чисел в натуральном ряду, не превышающих 1000. Сверхпростым называется простое число,...

Определить номер (в натуральном ряду) четного числа, такого, что сумма всех предыдущих четных, включая данное, больше заданного числа
Определить номер (в натуральном ряду) четного числа, такого, что сумма всех предыдущих четных, включая данное, больше заданного числа. ...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru