Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
TheTimickRus
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 21
1

Найти число на отрезке, сумма пятеричных цифр которого минимальна

20.11.2017, 02:24. Просмотров 400. Ответов 5
Метки нет (Все метки)

Всем привет! Вот такую задачу задали. Я программу написал, но вот отчего - то она постоянно 0 выдает.
Прошу помощи знающих людей, буду премного благодарен. Заранее спасибо!

Кликните здесь для просмотра всего текста
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
int main()
{   
    int X = 0, Y = 0, N = 0, M = 0;
    int TempX = 0, TempM = 0;
 
    cout << "Input X, Y: ";
    cin >> X;
    cin >> Y;
 
    while (X < Y) {
        TempX = X;
 
        while (TempX > 0) {
            if ((TempX % 10) < 5) 
                TempM += TempX % 10;
 
            TempX /= 10;
        }
        
        if (M > TempM) {
            M = TempM;
            N = X;
        }
 
        X++;
    }
    
    cout << "\nAnswer: " << N;
 
    _getch();
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2017, 02:24
Ответы с готовыми решениями:

Найти число на отрезке [x;y], произведение цифр которого максимально
Помогите, пожалуйста, написать программу: Найти число на отрезке , произведение цифр которого...

Найти двузначное число, сумма кубов цифр которого равна N
Найти двузначное число, сумма кубов цифр которого равна N Вот есть такой код: #include &lt;cstdlib&gt;...

Найти номер столбца сумма элементов которого минимальна
найти номер столбца сумма элементов которого минимальна C++

Найти среди простых чисел, попадающих в этот промежуток, такое число, у которого сумма цифр максимальная
1.В функцию передаются границы числового интревала. Найти среди простых чисел, попадающих в этот...

Поиск на отрезке количества чисел, сумма цифр которых есть однозначное число
1. Написать программу поиска на отрезке ( a &lt; b, a и b натуральные числа) количества чисел сумма...

5
COKPOWEHEU
2124 / 1251 / 286
Регистрация: 09.09.2017
Сообщений: 5,085
20.11.2017, 09:49 2
Цитата Сообщение от TheTimickRus Посмотреть сообщение
while (TempX > 0) {
if ((TempX % 10) < 5) TempM += TempX % 10;
TempX /= 10;
Это поиск десятичных цифр а не пятиричных
Цитата Сообщение от TheTimickRus Посмотреть сообщение
if (M > TempM) { M = TempM; N = X; }
M у вас инициализирована нулем. Естественно что он меньше любого положительного числа.
Цитата Сообщение от TheTimickRus Посмотреть сообщение
TempM += TempX % 10;
TempM не обнуляется в начале цикла
Цитата Сообщение от TheTimickRus Посмотреть сообщение
_getch();
Непереносимо. Уж лучше используйте system("pause")
0
TheTimickRus
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 21
20.11.2017, 13:59  [ТС] 3
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это поиск десятичных цифр а не пятиричных
А как тогда искать сумму пятеричных цифр? Что - то я вообще не понимаю и в интернете нет конкретно инфы об этом...

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
M у вас инициализирована нулем. Естественно что он меньше любого положительного числа.
Вот черт... Невнимательность ;(
Хмм, тогда же нужно, чтобы первое значение программа принудительно записывала в M. А как это реализовать?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
TempM не обнуляется в начале цикла
Исправил.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Непереносимо. Уж лучше используйте system("pause")
Хорошо, прислушаюсь. Но так, ради любопытства, чем плоха функция _getch();?
0
COKPOWEHEU
2124 / 1251 / 286
Регистрация: 09.09.2017
Сообщений: 5,085
20.11.2017, 15:26 4
Цитата Сообщение от TheTimickRus Посмотреть сообщение
А как тогда искать сумму пятеричных цифр? Что - то я вообще не понимаю и в интернете нет конкретно инфы об этом...
А в чем принципиальная разница между десятичной и пятиричной цифрой? Или вы скопипастили откуда-то код разложения, не вдумываясь как это происходит?
Цитата Сообщение от TheTimickRus Посмотреть сообщение
Хмм, тогда же нужно, чтобы первое значение программа принудительно записывала в M. А как это реализовать?
Не обязательно первое. Можно INT_MAX, LONG_MAX или какой там тип будете использовать
Цитата Сообщение от TheTimickRus Посмотреть сообщение
Но так, ради любопытства, чем плоха функция _getch();?
Она гвоздями прибита к conio или какой-то другой MS-специфичной библиотеке, поэтому при переносе на другие платформы выдаст ошибку. К примеру, мне не слишком нравится каждый раз вырезать подобные куски только чтобы проверить чужой код. system("pause"), разумеется, тоже не сработает и выдаст ошибку, но хоть не порушит остальную программу и не помешает ей собратсья и работать.
0
TheTimickRus
0 / 0 / 0
Регистрация: 30.11.2016
Сообщений: 21
20.11.2017, 15:39  [ТС] 5
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А в чем принципиальная разница между десятичной и пятиричной цифрой? Или вы скопипастили откуда-то код разложения, не вдумываясь как это происходит?
Код писал полностью сам, просто на вопрос разницы между числами не смогу ответить.
На сколько я понимаю, пятеричная цифра, это цифра, не превышающая 5 (0, 1, 2, 3, 4).
Ну и собственно, в программе я это и проверяю: ((TempX % 10) < 5).

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Не обязательно первое. Можно INT_MAX, LONG_MAX или какой там тип будете использовать
Дело в том, что я не могу использовать подобные константы. Уж такие требования у преподавателя...
И чтобы программа заработала, придется извращаться, как можно... Охх, капец...
0
COKPOWEHEU
2124 / 1251 / 286
Регистрация: 09.09.2017
Сообщений: 5,085
20.11.2017, 17:43 6
Цитата Сообщение от TheTimickRus Посмотреть сообщение
Ну и собственно, в программе я это и проверяю: ((TempX % 10) < 5).
А если встречается десятичная цифра 7, она просто игнорируется? А ведь это 12в пятиричной системе
Пятиричное число это http://www.cyberforum.ru/cgi-bin/latex.cgi?y = 5^3 a_3 + 5^2 a_2 + 5^1 a_1 + 5^0 a_0, где a3...a0 - пятиричные цифры
То есть надо делать деление/остаток на 5 а не на 10 вот и все
Цитата Сообщение от TheTimickRus Посмотреть сообщение
Дело в том, что я не могу использовать подобные константы.
Константы? А соответствующие числа вроде 65535 или 32767 или даже ((int)(~0)>>1)
Впрочем, можно и в лоб: завести отдельный "флаг первого числа".
0
20.11.2017, 17:43
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2017, 17:43

Определить номер столбца сумма элементов которого минимальна
Может кто знает как? в С++ совсем не бум бум В матрице А определить номер столбца сумма элементов...

Найти количество чисел на отрезке от A до B, сумма цифр которых четна
Сумма цифр Ввод: стандартное устройство ввода Вывод: стандартное устройство вывода Ограничение...

Упорядочить по возрастанию столбец матрицы, сумма элементов которого минимальна
2. Дана целочисленная квадратная матрица. Определить: • упорядочить по возрастанию столбец, сумма...


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

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

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