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

Нужно найти N ое в порядке возрастания красивое число - C++

Восстановить пароль Регистрация
 
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
04.10.2016, 19:02     Нужно найти N ое в порядке возрастания красивое число #1
Надо написать программу в с++.
Условие : Будем называть число красивым, если сумма его цифр в десятичной системе счисления делится на количество цифр в нем (в десятичной системе счисления).

Необходимо найти N-ое в порядке возрастания красивое число.
Входные данные

Входной файл INPUT.TXT содержит целое число N. (1 <= N <= 100 000)
Выходные данные

В выходной файл OUTPUT.TXT выведите ответ на задачу.
пример: N=1 выводит 1 , N=15 выводит 20.

Я так понял надо перебирать числа начиная с единицы и ввести одновременно с этим счётчик . Когда счётчик будет равен N , то программа должна выдать красивое число , соответствующее этому номеру . Пока что я смог написать только счётчик , но когда я пытаюсь связать его с числом N ничего не получается . Помогите пожалуйста , а то ничего не выходит .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 19:02     Нужно найти N ое в порядке возрастания красивое число
Посмотрите здесь:

C++ Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5
дано натуральное число n. получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа кроме 2, 3 и 5 C++
C++ Найти слово, символы в котором идут в строгом порядке возрастания их кодов
Дано натуральное число n>1. Выведите все простые множители этого числа в порядке возрастания с учетом кратности. C++
Нужно ввести любые три числа и чтобы они расположились в порядке возрастания C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zauberbiest
 Аватар для Zauberbiest
99 / 2 / 0
Регистрация: 27.08.2016
Сообщений: 26
04.10.2016, 19:16     Нужно найти N ое в порядке возрастания красивое число #2
Покажите то, что уже есть. Так будет легче помочь.
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
04.10.2016, 19:34  [ТС]     Нужно найти N ое в порядке возрастания красивое число #3
Наверно тут полная ересь , но вот .
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
int main()
{
    int N; // порядковый номер , который вводит пользователь
    int n = 1;
    int sum = 0; //сумма чифр в числе n
    int m = 0; // счётчик который в итоге должен стать равным N
    int k = 0; // счётчик элеметов числа n
    cin >> N;
    while (m!= N)
    {
        int p = n;
        while (p != 0)
        {
            sum += p % 10;
            p = p / 10;
            k++;
        }
        if (sum%k == 0)
            m = m + 1;
        else
            m = m + 0;
        n++;
    }
        
    cout << n-1;
    
 
 
    return 0;
}
Zauberbiest
 Аватар для Zauberbiest
99 / 2 / 0
Регистрация: 27.08.2016
Сообщений: 26
04.10.2016, 20:34     Нужно найти N ое в порядке возрастания красивое число #4

Не по теме:

(я, конечно, чайник, но все-таки решусь дать пару советов)


Ваш код плохо читаем. Нужно делать отступы (+использовать теги ""), а также давать более говорящие имена переменным. Во всех этих n, m, k, и т.п. легко запутаться. И еще, попробуйте писать отдельные "кусочки" кода и проверять их работу, перед тем как включить их в программу (чайнику от чайника). Так будет проще чем сразу пытаться сделать побольше и выискивать потом ошибки.
Сейчас к сожалению, занят, но завтра, если вопрос еще не решится, попробую вам помочь.
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
04.10.2016, 20:41  [ТС]     Нужно найти N ое в порядке возрастания красивое число #5
Да , помогите если сможете , буду очень благодарен .
regio1961
 Аватар для regio1961
89 / 89 / 41
Регистрация: 06.06.2016
Сообщений: 209
04.10.2016, 22:44     Нужно найти N ое в порядке возрастания красивое число #6
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
 #include <iostream>
 //---------------------------------------------------------
 bool  is_beautiful_number( int n )
 {
   int  digits_sum     = 0;
   int  digits_counter = 0;
       while ( n )
       {
         digits_sum += n % 10;
         digits_counter++;
         n /= 10;
       }
   return !( digits_sum % digits_counter );
 }
 //---------------------------------------------------------
 int nth_beautiful_number( const int &n )
 {
   int number = 0;
       for ( int k = 1; k <= n;  )
         k += is_beautiful_number( ++number );
   return  number;
 }
 //---------------------------------------------------------
 int main()
 {
       for ( int n = 1; n < 130; ++n )
         std::cout << n << ")\t" << nth_beautiful_number( n ) << "\n";
   //std::cin.get();
   return 0;
 }
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
05.10.2016, 18:37  [ТС]     Нужно найти N ое в порядке возрастания красивое число #7
а могли бы вы поподробнее разъяснить как работают первые два абзаца bool is_beautiful_number( int n ) и int nth_beautiful_number?
regio1961
 Аватар для regio1961
89 / 89 / 41
Регистрация: 06.06.2016
Сообщений: 209
05.10.2016, 19:09     Нужно найти N ое в порядке возрастания красивое число #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
 bool  is_beautiful_number( int n )
 {
   int  digits_sum     = 0;          // здесь накопим сумму цифр числа n 
   int  digits_counter = 0;         // здесь посчитаем количество цифр числа n
       while ( n )                       // пока n не стало 0 (n > 0 считается true)
       {                                    // делаем:
         digits_sum += n % 10;  // взяли последнюю цифру числа n и прибавили её к  сумме цифр
         digits_counter++;         // увеличили счетчик цифр на 1
         n /= 10;                       // поделили нацело n на 10, n укоротилось на один разряд  
       }
   return !( digits_sum % digits_counter );  // возврат true, если digits_sum делится на digits_counter, иначе -- false
 }
 //---------------------------------------------------------
 // Здесь просто считаем все красивые числа, начиная с 1, 
 // пока не  дойдем до n-го
 //---------------------------------------------------------
 int nth_beautiful_number( const int &n )
 {
   int number = 0;                        
       for ( int k = 1; k <= n;  )                                // k -- счетчик красивых чисел
         k += is_beautiful_number( ++number );       // он увеличивается на 1, если is_beautiful_number
                                                                           // возвращает true (true втихую конвертится в 1, 
                                                                           // а false -- в 0) 
   return  number;
 }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2016, 19:25     Нужно найти N ое в порядке возрастания красивое число
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
05.10.2016, 19:25  [ТС]     Нужно найти N ое в порядке возрастания красивое число #9
Спасибо большое
Yandex
Объявления
05.10.2016, 19:25     Нужно найти N ое в порядке возрастания красивое число
Ответ Создать тему
Опции темы

Текущее время: 06:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru