Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mars74
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 31
#1

Сравнение цифр в n-значном числе - C++

21.11.2014, 17:49. Просмотров 321. Ответов 5
Метки нет (Все метки)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
    int x, y, n=99;
for(int i = 0; i <= n; i++)  // проход по всем числам в интервале, включая границы
{
x = i / 10; // старший знак - делим на 10. Например 43 / 10 = 4
y = i % 10; // младший знак - остаток от деления на 10. Например 43 % 10 = 3
 
if( (abs( x - y) == 1) & ((x != 0) & (y != 0)) ) // если разница по модулю равна единице и нет нулей
cout << i<< endl;
}
    getchar(); getchar();
    return 0;
Программа печатает все 2х значные числа разница между ними по модулю =1.
Как модифицировать программу чтобы она работала для n значных чисел.
Например:
число 125: сравниваем |1 - 2| = 1, потом сравниваем |2 - 5| > 1. число 125 не подходит
число 121: сравниваем |1 - 2| = 1, потом сравниваем |2 - 1| =1. число 121 подходит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 17:49     Сравнение цифр в n-значном числе
Посмотрите здесь:

Найти сумму цифр в 4-х значном числе - C++
Пожалуйста помогите. С простенькой задачкой. Язык С. Задание: Вводится с клавиатуры 4-х значное число, а программа должна вывести ...

Сравнение цифр в числе - C++
Подскажите, как сравнивать цифры в числе. Пытался в массив перевести, но не получилось. Пытался просто число в символьный перевести и...

Соседние цифры в N значном числе - C++
Для n-значных чисел печатать только те, цифры которых являются соседними в натуральном ряду. Программа правильно работает только с 2х...

Нахождение всех симметричных чисел в 4-х значном числе - C++
Пример 1331,7667 Не понимаю с чего начать вообще программу, есть идея разбить на отдельные числа, но не понимаю как это реализовать,...

не могу никак найти сравнение цифр в числе - C++
народ помогите с индексами в массиве, надо сделать задачку в массиве из 4 индексов например 13 2 45 19 нужно из каждого индекса найти...

Сравнение чисел в трёхзначном числе - C++
Нужно определить какая из цифр в трёхзначном числе больше первая или вторая?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nosey
1346 / 397 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
21.11.2014, 18:11     Сравнение цифр в n-значном числе #2
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
 
void main()
{
    int a = 0, b = 100;
    for (; a <= b; ++a)
    {
        std::stringstream stream;
        stream << a;
        std::string valueString;
        stream >> valueString;
        bool sucsess = true;
        for (auto c1 = valueString.begin(), c2 = c1+1, end = valueString.end(); c2 < end && sucsess; ++c1, ++c2)
        {
            sucsess &= abs(*c1 - *c2) <= 1;
        }
        if (sucsess)
        {
            std::cout << valueString << std::endl;
        }
    }
}
Mars74
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 31
21.11.2014, 19:33  [ТС]     Сравнение цифр в n-значном числе #3
программа не запускается
выдает ошибку в 17 строке "В списке объявлений спецификатор "auto" должен всегда выводить тот же самый тип "
Nosey
1346 / 397 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
21.11.2014, 20:05     Сравнение цифр в n-значном числе #4
Ну тогда вот так:
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
 
void main()
{
    int a = 0, b = 100;
    for (; a <= b; ++a)
    {
        std::stringstream stream;
        stream << a;
        std::string valueString;
        stream >> valueString;
        bool sucsess = true;
        for (std::string::iterator c1 = valueString.begin(), c2 = c1 + 1, end = valueString.end(); c2 < end && sucsess; ++c1, ++c2)
        {
            sucsess &= abs(*c1 - *c2) <= 1;
        }
        if (sucsess)
        {
            std::cout << valueString << std::endl;
        }
    }
}
Mars74
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 31
21.11.2014, 20:55  [ТС]     Сравнение цифр в n-значном числе #5
Для 2х значного диапазона (от 0 до 99) не правильно числа выводит... должен выводить только 16 цифр
12 21 23 32 34 43 45 54 56 65 67 76 78 87 89 98
для 3Х от значного диапазона (от 100 до 999) должен печатать
121 123 212 232 234 .... 878 987
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2014, 22:07     Сравнение цифр в n-значном числе
Еще ссылки по теме:

Сравнение чисел в трёхзначном числе - C++
Нужно определить какая из цифр в трёхзначном числе больше первая или последняя?

Сумма цифр в числе - C++
Помогите пожалуйста.. не могу понять почему он не выводит результат? #include &lt;fstream&gt; using namespace std; int main() { ...

Количество цифр в числе - C++
Число указует пользователь и нужно через for цыкл

Разность цифр в числе... - C++
Программа разделяет число на цифры и находит их разность, только вот неправильно находит..:( #include &lt;iostream&gt; using...

Замена цифр в числе - C++
Здравствуйте, помогите с заданием: Дано натуральное число n, заменить в нем цифры 3,5,7 на 4,6,8 соответственно. На паскале писала...

Сумма цифр в числе - C++
Определить сумму цифр в числе.


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

Или воспользуйтесь поиском по форуму:
Nosey
1346 / 397 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
21.11.2014, 22:07     Сравнение цифр в n-значном числе #6
Mars74, проверьте длину строки valueString(>1). Ну или же измените диапазон перебираемых значений с 10.
Yandex
Объявления
21.11.2014, 22:07     Сравнение цифр в n-значном числе
Ответ Создать тему
Опции темы

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