Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
#1

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

04.10.2016, 19:02. Просмотров 247. Ответов 8
Метки нет (Все метки)

Надо написать программу в с++.
Условие : Будем называть число красивым, если сумма его цифр в десятичной системе счисления делится на количество цифр в нем (в десятичной системе счисления).

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

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

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

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

Нужно отсортировать массив в порядке возрастания - C++
помогите пожалуйста....не могу разобраться как отсортировать все значения которые мы вводим #include &lt;stdio.h&gt; /*#include &lt;iostream&gt;...

С помощью алгоритма вставки, нужно сортировать парные числа массива в порядке возрастания - C++
Приветствую! Нужно написать программу которая из текстового файла будет считывать в массив числа (например, 2 6 4 13 15 29). После...

Нужно ввести любые три числа и чтобы они расположились в порядке возрастания - C++
Помогите решить задачу! Нужно ввести любые три числа и чтобы они расположились в порядке возрастания.

Вывести в порядке возрастания элементы массива, целая часть которых - нечетное число - C++
в массиве 100 вещ чисел (от 3 до 35). как вывести в порядке возрастания элементы, целая часть которых нечетное число? знаю вроде только как...

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ - C++
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять:) Добавлено через 22 минуты вот так...

Дано натуральное число. Верно ли, что его цифры следуют в порядке возрастания справа налево - C++
Здравствуйте ,написал код все работает,но не могу придумать алгоритм к нему. если кто может нарисовать буду очень благодарен. ...

8
Zauberbiest
99 / 2 / 0
Регистрация: 27.08.2016
Сообщений: 39
04.10.2016, 19:16 #2
Покажите то, что уже есть. Так будет легче помочь.
0
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
04.10.2016, 19:34  [ТС] #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;
}
0
Zauberbiest
99 / 2 / 0
Регистрация: 27.08.2016
Сообщений: 39
04.10.2016, 20:34 #4

Не по теме:

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


Ваш код плохо читаем. Нужно делать отступы (+использовать теги ""), а также давать более говорящие имена переменным. Во всех этих n, m, k, и т.п. легко запутаться. И еще, попробуйте писать отдельные "кусочки" кода и проверять их работу, перед тем как включить их в программу (чайнику от чайника). Так будет проще чем сразу пытаться сделать побольше и выискивать потом ошибки.
Сейчас к сожалению, занят, но завтра, если вопрос еще не решится, попробую вам помочь.
0
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
04.10.2016, 20:41  [ТС] #5
Да , помогите если сможете , буду очень благодарен .
0
regio1961
118 / 118 / 51
Регистрация: 06.06.2016
Сообщений: 282
04.10.2016, 22:44 #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;
 }
0
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
05.10.2016, 18:37  [ТС] #7
а могли бы вы поподробнее разъяснить как работают первые два абзаца bool is_beautiful_number( int n ) и int nth_beautiful_number?
0
regio1961
118 / 118 / 51
Регистрация: 06.06.2016
Сообщений: 282
05.10.2016, 19:09 #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;
 }
0
Чайник08
0 / 0 / 0
Регистрация: 04.10.2016
Сообщений: 5
05.10.2016, 19:25  [ТС] #9
Спасибо большое
0
05.10.2016, 19:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2016, 19:25
Привет! Вот еще темы с ответами:

Дано натуральное число n>1. Выведите все простые множители этого числа в порядке возрастания с учетом кратности. - C++
Дано натуральное число n&gt;1. Выведите все простые множители этого числа в порядке возрастания с учетом кратности. Ввод...

Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2, 3 и 5 - C++
Дано натуральное число n. Получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа, кроме 2,...

дано натуральное число n. получить в порядке возрастания n первых натуральных чисел, которые не делятся ни на какие простые числа кроме 2, 3 и 5 - C++
#include&lt;iostream&gt; #include&lt;vector&gt; #include&lt;cstdlib&gt; using namespace std; int main() {int i,n,k; cout&lt;&lt;&quot;n: &quot;&lt;&lt;endl; ...

Найти слово, символы в котором идут в строгом порядке возрастания их кодов - C++
Ввести n слов с консоли. Найти слово, символы в котором идут в строгом порядке возрастания их кодов. Если таких слов несколько, найти...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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