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

Обьясните выполнение задачи - C++

Восстановить пароль Регистрация
 
Serg22
 Аватар для Serg22
102 / 102 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
13.10.2013, 16:29     Обьясните выполнение задачи #1
Привет. Искал в интернете задачи по с++, наткнулся на эту.
Витя работает недалеко от одной из станций кольцевой линии метро, а живет рядом с другой станцией той же линии. Требуется выяснить, мимо какого наименьшего количества промежуточных станций необходимо проехать Вите по кольцу, чтобы добраться с работы домой.
Входные данные
заданы три числа: сначала N – общее количество станций кольцевой линии, а затем i и j – номера станции, на которой Витя садится, и станции, на которой он должен выйти. Станции пронумерованы подряд натуральными числами 1, 2, 3, …, N (1-я станция – соседняя с N-й), N не превосходит 100. Числа i и j не совпадают.
Выходные данные
требуется вывести минимальное количество промежуточных станций (не считая станции посадки и высадки), которые необходимо проехать Вите.

Вот решение:
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
#include<iostream> 
using namespace std; 
 
int main() 
{ 
 
int a,b,c,d=0,e=0,f=0,g=0,h=0; 
cout <<"vvedite a,b,c"<<endl;
cin>>a>>b>>c; 
 
if (b<c) 
{ 
f=a-c; 
g=a-b; 
h=c-b; 
if (h<(f+b)) 
{cout<<h-1<<endl; system("pause");}
else 
{cout<<f+b-1<<endl; 
system("pause");}
} 
else 
{ 
f=a-c; 
g=a-b; 
h=b-c; 
if (h<(g+c)) 
{cout<<h-1<<endl; 
system("pause");}
else 
{cout<<g+c-1<<endl; 
system("pause");}
} 
return 0; 
}
Обьясните, пожалуйста, как именно мы находим мин. кол-во промежуточных станций? и что значат d,e,f,g,h ?
Особенно интересует случай когда b>c, например, a=100, b=75, c=4 . Почему 28?оО
Миниатюры
Обьясните выполнение задачи  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 16:29     Обьясните выполнение задачи
Посмотрите здесь:

обьясните код C++
C++ Обьясните.
обьясните решение C++
Обьясните условие задачи C++
C++ Обьясните задание
C++ обьясните пожалуйста!
Обьясните проограмму C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Grimbo
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 6
13.10.2013, 17:31     Обьясните выполнение задачи #2
28 потому что 100+4-75=29(количество станций от 76 до 104). Нам же нужны только промежуточные станции, потому 29-1=28. f,g,h - значат ровно то, что там написано, f - количество станций от станции выхода до конца(макс номера станции), остальные по аналогии. d,e - вообще не используются..
Yandex
Объявления
13.10.2013, 17:31     Обьясните выполнение задачи
Ответ Создать тему
Опции темы

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