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

Решение олимпиадной задачи (ч.2) - C++

Восстановить пароль Регистрация
 
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
30.10.2012, 21:35     Решение олимпиадной задачи (ч.2) #1
i:= 1
j:= 257

Цикл
i:= i + x;
j:= j - x;
x:= x - 1
выполнили 25 раз и стало i= j.
Надо найти х.

Желательно написать алгоритм поиска х, а так же программу по поиску этого числа на языке С++.

Лично мои мысли это сделать так:
х присвоить 0. Выполнить цикл 25 раз и проверить условие i= j, если оно не верно, то х:= х+1. И делать так до бесконечности, пока проверка i= j не даст истину.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 21:35     Решение олимпиадной задачи (ч.2)
Посмотрите здесь:

Помогите с олимпиадной задачкой ( C++
Решение задачи C++
Решение задачи C++
C++ Решение задачи
C++ Решение задачи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 21:48     Решение олимпиадной задачи (ч.2) #2
ну самое простое, мудрить тут думаю особо не стоит тем более
Цитата Сообщение от florgas Посмотреть сообщение
И делать так до бесконечности, пока проверка i= j не даст истину.
цикл максимум около 10 повторений сделает =)
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
30.10.2012, 21:53  [ТС]     Решение олимпиадной задачи (ч.2) #3
Почему 10 и как правильно сделать?
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 22:04     Решение олимпиадной задачи (ч.2) #4
C++
1
2
3
4
5
6
7
8
9
10
11
int x=-1,i=1,j=257;
while(i!=j){
    i=1;j=257;
    x++;
    int x1=x;
    for(int i1=0;i1<25;i1++){
        i+=x1;
        j-=x1;
        x1--;
    }
}
как то так наверное

Добавлено через 47 секунд
Цитата Сообщение от florgas Посмотреть сообщение
Почему 10
ну мне так кажется просто =)

Добавлено через 1 минуту
хм... цикл зациклился=/
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 22:06     Решение олимпиадной задачи (ч.2) #5
x = 605.12
ну и как вы собирались его найти методом перебора?)))
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 22:08     Решение олимпиадной задачи (ч.2) #6
видимо никогда так не получится
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
30.10.2012, 22:08  [ТС]     Решение олимпиадной задачи (ч.2) #7
Не знаю. Я лично написал свои мысли.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 22:08     Решение олимпиадной задачи (ч.2) #8
Цитата Сообщение от Thinker Посмотреть сообщение
x = 605.12
ну и как вы собирались его найти методом перебора?)))
больше интересно как вы его нашли =)
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
30.10.2012, 22:11  [ТС]     Решение олимпиадной задачи (ч.2) #9
Я понял в чем ошибка. Я задание не правильно дал... Сейчас поправлю =)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 22:12     Решение олимпиадной задачи (ч.2) #10
1+x+(x-1)+(x-2)+...+(x-24) = 257-x-(x-1)-(x-2)-...-(x-24)
http://www.cyberforum.ru/cgi-bin/latex.cgi?1+25x-\frac{24*25}{2}=257-25x+\frac{24*25}{2}
50x = 256 + 24*25

Добавлено через 1 минуту
Цитата Сообщение от florgas Посмотреть сообщение
Я понял в чем ошибка. Я задание не правильно дал...
вот и помогай человеку
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 22:12     Решение олимпиадной задачи (ч.2) #11
florgas, после 25 шагов i=j=129. Математическое решение тут не нужно?
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 22:13     Решение олимпиадной задачи (ч.2) #12
C++
1
2
3
4
5
6
7
double x1=605.12,i=1.0,j=257.0;
    for(int i1=0;i1<25;i1++){
        i+=x1;
        j-=x1;
        x1--;
    }
cout<<i<<endl<<j<<endl;
вывод
14829
-14571
ошиблись сударь =)
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
30.10.2012, 22:15  [ТС]     Решение олимпиадной задачи (ч.2) #13
Поправка. Условие задания дал не верно.
Вот верное условие:

Код
i:= 1
j:= 257

If i< j то цикл: 
i:= i + x; 
j:= j - x; 
x:= x - 1 
else 
i:= i - x;
j:= j + x;
x:= x - 1;
выполнили 25 раз и стало i= j.
Надо найти х.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 22:15     Решение олимпиадной задачи (ч.2) #14
Цитата Сообщение от Thinker Посмотреть сообщение
50x = 256 + 24*25
во вот это работает =)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 22:17     Решение олимпиадной задачи (ч.2) #15
Цитата Сообщение от MrGrig Посмотреть сообщение
во вот это работает =)
ошибся изначально, не то скопировал, x = 17.12))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2012, 22:25     Решение олимпиадной задачи (ч.2)
Еще ссылки по теме:

Алгоритм решения олимпиадной задачи C++
Решение задачи C++
C++ Оптимизация олимпиадной задачи по программированию

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

Или воспользуйтесь поиском по форуму:
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
30.10.2012, 22:25     Решение олимпиадной задачи (ч.2) #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(){
    int x=-1,i=1,j=257;
while(i!=j){
    i=1;j=257;
    x++;
    int x1=x;
    for(int i1=0;i1<25;i1++){
        if(i<j){
            i+=x1;
            j-=x1;
            x1--;
        }
        else{
            i-=x1;
            j+=x1;
            x1--;
        }
    }
}
cout<<x<<endl<<i<<endl;
return 0;
}
Цитата Сообщение от I.M. Посмотреть сообщение
после 25 шагов i=j=129
Yandex
Объявления
30.10.2012, 22:25     Решение олимпиадной задачи (ч.2)
Ответ Создать тему
Опции темы

Текущее время: 08:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru