Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
roman0412
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 30
1

Золото племени АББА

22.01.2016, 18:40. Просмотров 960. Ответов 18
Метки нет (Все метки)

Добрый день!
Я пытался решить довольно-таки простенькую задачку "Золото племени АББА".
Проблема в том, что мой алгоритм не может хранить очень большие числа, поэтому на Тесте № 3 программа выводит некорректный результат.
Текст задачи:

Кликните здесь для просмотра всего текста
Главный вождь племени Абба не умеет считать. В обмен на одну из его земель вождь другого племени предложил ему выбрать одну из трех куч с золотыми монетами. Но вождю племени Абба хочется получить наибольшее количество золотых монет. Помогите вождю сделать правильный выбор!


№ INPUT.TXT OUTPUT.TXT
1 5 7 3 7
2 987531 234 86364 987531
3 189285 283 4958439238923098349024 4958439238923098349024

Мой код:

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
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
int main() {
    unsigned int Input[3];
    ifstream fin("INPUT.TXT");
    if (fin) {
        for (int i = 0; i < 3; ++i)
            fin >> Input[i];
    }
    else
        cout << "ERROR OPENING FILE";
    unsigned int Result;
    Result = 0;
    for (int i = 0; i < 3; ++i)
        if (Result < Input[i])
            Result = Input[i];
    ofstream fout{ "OUTPUT.TXT" };
    fout << Result;
    system("pause");
    return 0;
 
}
Вы не знаете как это исправить? Заранее благодарен за ответ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2016, 18:40
Ответы с готовыми решениями:

Задача Золото племени АББА
Почему-то у меня не проходит по одному из тестов решение для следующей задачи:...

Оптимизация программы "Золото племени АББА"
Помогите оптимизировать, если что задача: (Ссылка на сторонний ресурс...

Главный вождь племени Абба не умеет считать
короче решил задачу вот код Program Srednee; Var max,Element:integer; ...

Алфавит племени «тумба-юмба»
В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно...

Дана символьная строка.Подсчитать сколько раз в ней встречается подслово абба
Дана символьная строка.Подсчитать сколько раз в ней встречается подслово абба....

18
GbaLog-
Любитель чаепитий
3166 / 1472 / 465
Регистрация: 24.08.2014
Сообщений: 5,204
Записей в блоге: 1
Завершенные тесты: 2
22.01.2016, 18:43 2
roman0412,
C++
1
unsigned long long int Result = 0;
1
roman0412
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 30
22.01.2016, 19:04  [ТС] 3
Цитата Сообщение от makfak Посмотреть сообщение
unsigned long long int Result = 0;
Спасибо. Я попробовал, но, к сожалению, число 4958439238923098349024 всё равно обрабатывается с ошибкой.
Какие внес правки:
unsigned long long int Input[3];
unsigned long long int Result;
Выводится:
14757395258967641292
0
GbaLog-
Любитель чаепитий
3166 / 1472 / 465
Регистрация: 24.08.2014
Сообщений: 5,204
Записей в блоге: 1
Завершенные тесты: 2
22.01.2016, 19:08 4
Лучший ответ Сообщение было отмечено roman0412 как решение

Решение

roman0412, Тогда попробуйте со строками что ли. Им неважно сколько цифр.
1
roman0412
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 30
22.01.2016, 19:13  [ТС] 5
Цитата Сообщение от makfak Посмотреть сообщение
roman0412, Тогда попробуйте со строками что ли. Им неважно сколько цифр.
Дело в том, что я должен сравнить введенные числа и вывести наибольшее.
Если тип переменной char/string это вряд ли возможно.
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
22.01.2016, 19:19 6
roman0412, тогда пиши свой класс сверхбольших чисел, если умеешь
1
Dimension
Dimension
573 / 443 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
22.01.2016, 19:24 7
Лучший ответ Сообщение было отмечено Sergio Leone как решение

Решение

считываете в string ,если длины разные у всех то берете с наибольшей длиной ,если есть одинаковые длины то ищите максимальное по значению из них
2
GbaLog-
Любитель чаепитий
3166 / 1472 / 465
Регистрация: 24.08.2014
Сообщений: 5,204
Записей в блоге: 1
Завершенные тесты: 2
22.01.2016, 19:30 8
roman0412, А по-моему всё прекрасно сравнивается.
Как думаешь, каким будет результат этой программы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    string str = "11154646464646";
    string str2 = "11154646464645";
    if( str < str2 ) cout << "asdd";
    if( str2 < str ) cout << "qweq";
    cin.get();
    return 0;
}
1
kuza84
-4 / 23 / 7
Регистрация: 25.04.2013
Сообщений: 195
22.01.2016, 20:19 9
для решения больших чисел DCB числа подходят же тут только упакованные или не упакованные DBC числа использовать, 1 байт 1 число или 2.

Добавлено через 2 минуты
А если int в 64 бита число влезет с лонгами логнами, считали?
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
22.01.2016, 21:16 10
Не знаю, получится ли, но можно попробовать с числами long double поработать.
0
Liorik
1 / 1 / 2
Регистрация: 22.01.2016
Сообщений: 6
22.01.2016, 21:43 11
для хранения чисел за пределами переменных лучше всего использовать массивы, советую почитать про длинную арифметику.
0
Dmitriy_73
22.01.2016, 22:07
  #12

Не по теме:

makfak, а этой?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    string str = "11154646464646";
    string str2 = "2";
    if( str < str2 ) cout << "asdd";
    if( str2 < str ) cout << "qweq";
    cin.get();
    return 0;
}

0
GbaLog-
Любитель чаепитий
3166 / 1472 / 465
Регистрация: 24.08.2014
Сообщений: 5,204
Записей в блоге: 1
Завершенные тесты: 2
23.01.2016, 12:10 13
Dmitriy_73, Ну ладно, можно свою функцию написать, это не сложно, или сделать, как предложил Dimension.
0
Sergio Leone
2467 / 1112 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
23.01.2016, 12:17 14
Горячие финские парни, не спорьте.
Зачем привлекать длинную арифметику там, где без неё проще?!
Совет от Dimension однозначно в тему! Сравнили длины строк, какая длинее - там число и больше, если длины строк одинаковы, просто сравнили строки. и всё. пара if-ов и задача решена!
0
zer0mail
2452 / 2089 / 216
Регистрация: 03.07.2012
Сообщений: 7,571
Записей в блоге: 1
23.01.2016, 13:00 15
Для строк лидирующие нули надо не забыть обрезать.
0
Dimension
Dimension
573 / 443 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
23.01.2016, 13:44 16
zer0mail, думаю у натуральных чисел не может быть нулей лидирующих
0
zer0mail
2452 / 2089 / 216
Регистрация: 03.07.2012
Сообщений: 7,571
Записей в блоге: 1
23.01.2016, 15:38 17
Цитата Сообщение от Dimension Посмотреть сообщение
zer0mail, думаю у натуральных чисел не может быть нулей лидирующих
В тестах вполне могут быть и, насколько я помню, есть.
0
Sergio Leone
2467 / 1112 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
23.01.2016, 23:55 18
Цитата Сообщение от zer0mail Посмотреть сообщение
В тестах вполне могут быть и, насколько я помню, есть.
ты заблуждаешься.
Если речь идёт про задачу "Золото племени АББА" на acmp, то там никаких ведущих нулей нет.
Это я тебе точно говорю.
1
zer0mail
2452 / 2089 / 216
Регистрация: 03.07.2012
Сообщений: 7,571
Записей в блоге: 1
24.01.2016, 13:49 19
Согласен, память меня подвела. Но помню, что в какой-то подобной задаче тесты не проходили, пока не обрезал ведущие нули. Поэтому этот финт и запомнился.
1
24.01.2016, 13:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2016, 13:49

Взлом игры Warspear Online на золото
Возможно ли взломать игру warspear online на золото желательно через телефон....

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

Чит на золото в WoW с помощью WPE pro
кто в WPE pro ломал WOW на голды? 3.3.5а клиент розкажите как


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

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

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