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

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

Войти
Регистрация
Восстановить пароль
 
user-men
22 / 22 / 8
Регистрация: 17.02.2014
Сообщений: 307
#1

Районная олимпиада по программированию 2011-12 (ошибка!) - C++

08.06.2014, 22:57. Просмотров 173. Ответов 0
Метки нет (Все метки)

Похоже что я нашел ошибку помогите мне подтвердив ее или опровергнуть
вот задача !
Для иллюстрации метода математической индукции в учебниках времен СССР всегда приводилась следующая задача: «Доказать, что любую целую сумму денег, начиная с 8 руб., Можно без сдачи разменять купюрами по 3 и 5 руб.». Вам не нужно ничего доказывать, а необходимо просто написать программу, которая для двух типов купюр по Х и Y денежных единиц определяла бы, какую наибольшую сумму денег невозможно разменять этими купюрами, если Х и Y - взаимно простые натуральные числа.

Тести до задачі “CHANGE”

№тесту____Вхідні_дані______Результат_______Оцінка_________________________________________________________
1_________3_5_____________7______________2_бали_________________________________________________________
2_________1_73____________0______________7_балів________________________________________________________
3_________24_17___________367____________7_балів________________________________________________________
4_________999_1001________994999_________7_балів________________________________________________________
5_________46342_46341_____2147441939_____7_балів________________________________________________________

999 и 1001 у меня получилось 997999

сайт олимпиады - http://osvita-tomakivka.dp.ua/zavdannja-olimpiad/programuvannja/

1 программа
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//1 do 46342
#include <iostream>
#include <conio.h>
using namespace std;
 
const double MAX = 999;
long int x, y;
double mas;
 
inline bool oneone(double k)
{
    double X;
    X = x;
    for (double i = 0; i < MAX; i++)
    {
        if (X == k)
        {
            return 1;
        }
        if (X > k)
            break;
        X += x;
    }
    return 0;
}
 
inline bool twotwo(double k)
{
    double Y;
    Y = y;
    for (double i = 0; i < MAX; i++)
    {
        if (Y == k)
        {
            return 1;
        }
        if (Y > k)
            break;
        Y += y;
    }
    return 0;
}
 
inline bool onetwo(double k)
{
    double X, XX, i;
    X = x;
    XX = x;
    Pochtok :
    for (i = 0; i < MAX; i++)
    {
        if (X == k)
        {
            return 1;
        }
        if (X > k)
            break;
        X += y;
    }
    if (XX >= MAX || XX > k)
    return 0;
    XX += x;
    X = XX;
    goto Pochtok;
}
 
inline bool twoone(double k)
{
    double Y, YY, i = 0;;
    Y = y;
    YY = y;
    Pochtok :
    for (i = 0; i < MAX; i++)
    {
        if (Y == k)
        {
            return 1;
        }
        if (Y > k)
            break;
        Y += x;
    }
    if (Y >= MAX || YY > k)
    return 0;
    YY += y;
    Y = YY;
    goto Pochtok;
}
 
int main()
{
    double m = 0;
    bool k;
    cout << "Enter X ->";
    cin >> x;
    cout << "Enter Y ->";
    cin >> y;   
    long int i;
    if (x > y)
        i = x;
    else
        i = y;
    if (x <= 0 || x > 46342 || y <= 0 || y > 46342)
    {
        cout << "Erorr (1 do 46342)";
        getch();
        return 0;
    }
    for (; i < MAX; i++)
    {
        if (x % 2 == 0 && i % 2 == 0)
        {
            k = oneone(i);
            if (k == 1)
                continue;
        }
        if (y % 2 == 0 && i % 2 == 0)
        {
            k = twotwo(i);
            if (k == 1)
                continue;
        }
        k = onetwo(i);
        if (k == 1)
            continue;
        k = twoone(i);
        if (k == 1)
            continue;
        mas=i;
    }
    cout <<"Max number = "<< mas;
    getch();
    return 0;
}
2 программа
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 <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    long int x, y, Suma;
    cout << "Enter X ->";
    cin >> x;
    cout << "Enter Y ->";
    cin >> y;
    if (x <= 0 || x > 46342 || y <= 0 || y > 46342)
    {
        cout << "Erorr (1 do 46342)";
        getch();
        return 0;
    }
    Suma = (x*y) - (x + y);
    if (Suma>0)
    cout <<"Mix sum = "<< Suma;
    else
        cout <<"Mix sum = 0";
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 22:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Районная олимпиада по программированию 2011-12 (ошибка!) (C++):

Олимпиада по программированию - C++
28 апреля государственный тур олимпиада по программированию (в Армении), и я готовлюсь к олимпиаде. Прошу вас, если несложно дайте задач...

Международная олимпиада по программированию 1994г. Задач "Матрица простых чисел". - C++
Всем привет:) Решаю олимпиадные задачки прошлых годов и никак не получается решить эту. Задача: напишите написать программу , которая...

Ошибка LNK 2019 - C++ (Visual Studio 2011) - C++
Доброго времени суток. Помогите пожалуйста разобраться. Не удается запустить проект из 3-х файлов. Проект создавался &quot;пустой&quot;. Если весь...

прошлогодняя районная олимпиада, ошибку не могу найти - Turbo Pascal
помогите решить прошлогоднюю районную олимпиаду, так сказать решил потренироваться, а думать то совсем не прёт, чё то вон в мозгу накопал,...

Олимпиада 2010-2011 - Turbo Pascal
Помогите с задачей, условие задачи такого: Морской бой Максимальный балл: 50 В известной игре «Морской бой» действие происходит на...

Олимпиада по программированию (паскаль) - Free Pascal
дело в том что учавствовал в олимпиаде по информатике по знаниям xp или чё то такое, прошёл в следующий тур, а тут программирование. ни...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2014, 22:57
Привет! Вот еще темы с ответами:

Олимпиада по программированию. В выходной потек вывести единственное число - количество пустых клеток в данной комнате - Pascal ABC
Извените что на укр. ибо срочно. 1)Найти площадь комнаты в квадратном лабиринте. Формат входных данных. В первой строке входного...

Makefile. Ошибка. C++ 2011 standard - Ubuntu Linux
Доброго времени суток. При запуске make получаю ошибку: &quot;Building CXX object...

AVG 2011: ошибка с кодом 0xC0070643 - Антивирусы
При установке AVG 2011 на Win XP SP3 вылетает ошибка с кодом 0xC0070643. Гугл выдает результаты только с забугорных форумов. Что делать?!

Ошибка "Incorrect syntax near '.2011'" при обычном непараметризованном INSERT - C#
У меня странная ситуация при истользования обычного не параметризированого инсерта в ADO.NET. &quot;INSERT INTO table1(Name, Year) VALUES...


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

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

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