Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задание в С++

Александр Знаток (423), открыт 2 недели назад
"Странный муж" . Некий мужчина отправляется на работу, которая находится на расстоянии 1 км от дома. Дойдя до места работы, он вдруг вспоминает, что перед уходом забыл поцеловать жену, и поворачивает назад. Пройдя
полпути, он меняет решение, посчитав, что правильнее вернуться на работу.
Пройдя
13
км по направлению к работе, он вдруг осознает, что будет настоящим подлецом, если так и не поцелует жену. На этот раз, прежде чем изменить мнение, он проходит
14
км. Так он продолжает метаться, и после Nэтапа, пройдя 1/N км, снова меняет решение.
Определить:
а) на каком расстоянии от дома будет находиться мужчина после 100-го этапа
(если допустить, что такое возможно);
б) какой общий путь он при этом пройдет

НА С++ только с помощью циклов
4 ответа
Мыслитель (9021) 2 недели назад
 #include <iostream> 

int main() {
const int stages = 100; // Количество этапов
double distanceFromHome = 0.0; // Расстояние от дома
double totalDistance = 0.0; // Общий пройденный путь
double stepSize; // Размер текущего шага

// Начальная длина пути в 1 км
int direction = 1; // 1 - от дома, -1 - к дому

for (int stage = 1; stage <= stages; ++stage) {
stepSize = 1.0 / stage; // Длина шага на текущем этапе
distanceFromHome += direction * stepSize;
totalDistance += stepSize;
direction *= -1; // Меняем направление движения
}

std::cout << "Расстояние от дома после 100-го этапа: " << distanceFromHome << " км" << std::endl;
std::cout << "Общий пройденный путь: " << totalDistance << " км" << std::endl;

return 0;
}
Corix Гуру (2713) 2 недели назад
 #include <iostream> 

int main() {
int distance = 0;
int totalDistance = 0;
for (int i = 1; i <= 100; ++i) {
distance += 1 / i;
totalDistance += distance;
}
std::cout << "После 100 этапов мужчина будет находиться на расстоянии " << distance << " км от дома." << std::endl;
std::cout << "Общий пройденный путь составит " << totalDistance << " км." << std::endl;
return 0;
}
Андрей Высший разум (460806) 2 недели назад
 double s1 = 0.0, s2 = 0.0;
for (int n = 100; n > 0; --n) {
s1 = 1.0 / n - s1; // расстояние от дома
s2 += 1.0 / n; // общая дистанция
}
cout << s1 << ' ' << s2;
Рустам Абдрашитов Мыслитель (9508) 2 недели назад
На
 
#include <iostream>

int main() {
double position = 0.0;
double totalDistance = 0.0;
int direction = 1;

for (int stage = 1; stage <= 100; ++stage) {
double stepDistance = 1.0 / stage;
position += direction * stepDistance;
totalDistance += stepDistance;
direction = -direction;
}

std::cout << "а) Мужчина находится на расстоянии " << std::abs(position)
<< " км от дома после 100-го этапа." << std::endl;
std::cout << "б) Общий пройденный путь: " << totalDistance << " км." << std::endl;

return 0;
}
Похожие вопросы