6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
1

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

30.10.2012, 21:35. Показов 1096. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
i:= 1
j:= 257

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

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

Лично мои мысли это сделать так:
х присвоить 0. Выполнить цикл 25 раз и проверить условие i= j, если оно не верно, то х:= х+1. И делать так до бесконечности, пока проверка i= j не даст истину.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2012, 21:35
Ответы с готовыми решениями:

Алгоритм решения олимпиадной задачи
clip2net . com/clip/m121445/1353341115-clip-71kb.jpg Дело в том, что я не знаю, как лучше считать...

Оптимизация олимпиадной задачи по программированию
Есть задача: Ограничение времени на тест: 5 сек Ограничение памяти на тест: 256 Мб Условие...

Решение олимпиадной задачи
Доброй ночи! У меня возникла проблема с онлайн проверкой задачи. ссылка на условие мое...

Решение олимпиадной задачи
Есть задача, никак не могу решить не то что решить, но и до конца осознать условие. Буду рад любой...

15
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 21:48 2
ну самое простое, мудрить тут думаю особо не стоит тем более
Цитата Сообщение от florgas Посмотреть сообщение
И делать так до бесконечности, пока проверка i= j не даст истину.
цикл максимум около 10 повторений сделает =)
0
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
30.10.2012, 21:53  [ТС] 3
Почему 10 и как правильно сделать?
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 22:04 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 минуту
хм... цикл зациклился=/
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 22:06 5
x = 605.12
ну и как вы собирались его найти методом перебора?)))
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 22:08 6
видимо никогда так не получится
0
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
30.10.2012, 22:08  [ТС] 7
Не знаю. Я лично написал свои мысли.
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 22:08 8
Цитата Сообщение от Thinker Посмотреть сообщение
x = 605.12
ну и как вы собирались его найти методом перебора?)))
больше интересно как вы его нашли =)
0
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
30.10.2012, 22:11  [ТС] 9
Я понял в чем ошибка. Я задание не правильно дал... Сейчас поправлю =)
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 22:12 10
1+x+(x-1)+(x-2)+...+(x-24) = 257-x-(x-1)-(x-2)-...-(x-24)
https://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 Посмотреть сообщение
Я понял в чем ошибка. Я задание не правильно дал...
вот и помогай человеку
0
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 22:12 11
florgas, после 25 шагов i=j=129. Математическое решение тут не нужно?
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 22:13 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
ошиблись сударь =)
0
6 / 5 / 0
Регистрация: 28.09.2010
Сообщений: 366
30.10.2012, 22:15  [ТС] 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.
Надо найти х.
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 22:15 14
Цитата Сообщение от Thinker Посмотреть сообщение
50x = 256 + 24*25
во вот это работает =)
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2012, 22:17 15
Цитата Сообщение от MrGrig Посмотреть сообщение
во вот это работает =)
ошибся изначально, не то скопировал, x = 17.12))
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
30.10.2012, 22:25 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
1
30.10.2012, 22:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2012, 22:25
Помогаю со студенческими работами здесь

Решение олимпиадной задачи
Помогите, пожалуйста, решить следующую задачу: После затянувшегося совещания директор фирмы...

Решение олимпиадной задачи
Условие: Антон, Борис и Василий решили переплыть с одного берега озера на противоположный,...

Понять условие олимпиадной задачи
Задача BLOCK (25 балов) Площадью некоторого текста будем считать произведение количества его строк...

Оптимизация решения олимпиадной задачи
Всех приветствую. Недавно наткнулся на очень интересную олимпиадную задачу. Полностью переводить её...

Разбор олимпиадной задачи прошлого года
Здравствуйте!.. В прошлом году на региональном этапе всероссийской олимпиады школьников по...

Составление алгоритма с пояснениями к решению олимпиадной задачи (графы)
Здравствуйте всем! У меня есть к вам просьба, так как я хочу понять алгоритм этой задачи. Сам...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru