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

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

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

Золото племени АББА - C++

22.01.2016, 18:40. Просмотров 608. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Золото племени АББА (C++):

Задача Золото племени АББА - C++
Почему-то у меня не проходит по одному из тестов решение для следующей задачи: Решение: #include &lt;fstream&gt; #include &lt;string&gt; ...

Оптимизация программы "Золото племени АББА" - Pascal
Помогите оптимизировать, если что задача: (Ссылка на сторонний ресурс удалена) (Время: 1 сек. Память: 16 Мб Сложность: 40%) ...

Главный вождь племени Абба не умеет считать - Pascal
короче решил задачу вот код Program Srednee; Var max,Element:integer; f:file of integer; f1:text; Begin max:=0; ...

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

Дана символьная строка.Подсчитать сколько раз в ней встречается подслово абба - C (СИ)
Дана символьная строка.Подсчитать сколько раз в ней встречается подслово абба. В строке аббабба это слово встречается 1 раз а должно быть...

Взлом игры Warspear Online на золото - MMO игры
Возможно ли взломать игру warspear online на золото желательно через телефон. Если да,то как? Эта игра предназначена как и для пк так и для...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
GbaLog-
Любитель чаепитий
2768 / 1290 / 311
Регистрация: 24.08.2014
Сообщений: 4,573
Записей в блоге: 1
Завершенные тесты: 2
22.01.2016, 18:43 #2
roman0412,
C++
1
unsigned long long int Result = 0;
1
roman0412
1 / 1 / 0
Регистрация: 02.12.2013
Сообщений: 21
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-
Любитель чаепитий
2768 / 1290 / 311
Регистрация: 24.08.2014
Сообщений: 4,573
Записей в блоге: 1
Завершенные тесты: 2
22.01.2016, 19:08 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
roman0412, Тогда попробуйте со строками что ли. Им неважно сколько цифр.
1
roman0412
1 / 1 / 0
Регистрация: 02.12.2013
Сообщений: 21
22.01.2016, 19:13  [ТС] #5
Цитата Сообщение от makfak Посмотреть сообщение
roman0412, Тогда попробуйте со строками что ли. Им неважно сколько цифр.
Дело в том, что я должен сравнить введенные числа и вывести наибольшее.
Если тип переменной char/string это вряд ли возможно.
0
Ferrari F1
=^_^=
570 / 457 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
22.01.2016, 19:19 #6
roman0412, тогда пиши свой класс сверхбольших чисел, если умеешь
1
Dimension
Dimension
556 / 437 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
22.01.2016, 19:24 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
считываете в string ,если длины разные у всех то берете с наибольшей длиной ,если есть одинаковые длины то ищите максимальное по значению из них
2
GbaLog-
Любитель чаепитий
2768 / 1290 / 311
Регистрация: 24.08.2014
Сообщений: 4,573
Записей в блоге: 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 / 4
Регистрация: 25.04.2013
Сообщений: 195
22.01.2016, 20:19 #9
для решения больших чисел DCB числа подходят же тут только упакованные или не упакованные DBC числа использовать, 1 байт 1 число или 2.

Добавлено через 2 минуты
А если int в 64 бита число влезет с лонгами логнами, считали?
0
Ferrari F1
=^_^=
570 / 457 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
22.01.2016, 21:16 #10
Не знаю, получится ли, но можно попробовать с числами long double поработать.
0
Liorik
1 / 1 / 1
Регистрация: 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-
Любитель чаепитий
2768 / 1290 / 311
Регистрация: 24.08.2014
Сообщений: 4,573
Записей в блоге: 1
Завершенные тесты: 2
23.01.2016, 12:10 #13
Dmitriy_73, Ну ладно, можно свою функцию написать, это не сложно, или сделать, как предложил Dimension.
0
Sergio Leone
2454 / 1099 / 402
Регистрация: 07.06.2014
Сообщений: 3,259
23.01.2016, 12:17 #14
Горячие финские парни, не спорьте.
Зачем привлекать длинную арифметику там, где без неё проще?!
Совет от Dimension однозначно в тему! Сравнили длины строк, какая длинее - там число и больше, если длины строк одинаковы, просто сравнили строки. и всё. пара if-ов и задача решена!
0
zer0mail
2334 / 1960 / 192
Регистрация: 03.07.2012
Сообщений: 7,029
Записей в блоге: 1
23.01.2016, 13:00 #15
Для строк лидирующие нули надо не забыть обрезать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2016, 13:00
Привет! Вот еще темы с ответами:

Написать функцию, которая найдёт возможный вариант размещения жителей племени - C (СИ)
Есть такая интересная задачка, давалась в одном из вузов на экзамене в первом семестре. На острове живут N человек племени Тумба-Юмба, и...

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

Считать количество медалей в последовательности золото, серебро, бронза - C#
смысл такой - нужно считать количество медалей в последовательности золото,серебро,бронза с клавиатуры. потом я пытаюсь разрезать строку и...

Макрос Вместо Курса Доллара цены на металлы (золото) - MS Excel
Может кто знает как вытянуть с этого сайта котировку на золото? Вот готовый код настроенный на котировку доллара, на этом же сайте есть...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2016, 13:00
Ответ Создать тему
Опции темы

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