Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 9

Определить день когда пробег спортсмена составит не менее заданного

27.07.2016, 18:23. Показов 4229. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 70% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.

Входные данные
На вход программа получает два действительных числа x и y . Числа положительные, действительные, не превосходят 1000, заданы с точностью до шести знаков после запятой.

Выходные данные
Программа должна вывести единственное целое число.

Пример входных данных:
10 30
Пример выходных данных:
4

Мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
 
int main()
{
    float a,b;
    int d=1;
    cin>>a>>b;
    while (a<b)
    {
        a*=1.7;
        d+=1;
    }
    cout<<d;
}
Мой код почему-то не проходит последний тест, выдает неправильный ответ. Помогите найти ошибку.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.07.2016, 18:23
Ответы с готовыми решениями:

Определите номер дня, на который пробег спортсмена составит не менее У километров
В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y...

По данному числу Y определить номер дня, в который пробег спортсмена составил не менее Y километров
Привет всем! Решаю такую задачу: В первый день спортсмен пробежал X километров. В каждый последующий день он увеличивал пробег на 15%...

Определить, через сколько дней общий суммарный пробег спортсмена составит не менее X км
Циклы с проверкой условий Начав тренировки, В первый день тренировок спортсмен пробежал N километров, а затем он каждый день...

20
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
27.07.2016, 18:32
Nikita Pop, do-while;
0
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 9
27.07.2016, 18:35  [ТС]
lawr, я знаю. Поэтому день(d) как целочисленное, а изначальный и конечный пробег(a,b) у меня действительный, в этой части ошибки нет.
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
27.07.2016, 18:57
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main() {
    double x,y;
    cin>>x>>y;
    int c=1;
    do {
        x+=x*0.7;
        c++;
    } while(x<y);
    cout<<c<<endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 9
27.07.2016, 19:12  [ТС]
Peoples, этот код не прошел еще больше задач
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
27.07.2016, 19:15
Nikita Pop, что именно?
0
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 9
27.07.2016, 19:22  [ТС]
Peoples, твой код прошел 5 тестов из 17, мой-16.
Содержание тестов я не знаю
0
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
27.07.2016, 19:58
Цитата Сообщение от Peoples Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main() {
* * double x,y;
* * cin>>x>>y;
* * int c=1;
* * do {
* * * * x+=x*0.7;
* * * * c++;
* * } while(x<y);
* * cout<<c<<endl;
* * return 0;
}
C++
1
int c=0;
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
27.07.2016, 20:25
Nikita Pop, а такой код попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <limits>
using namespace std;
 
inline bool f_compare(const double& a, const double& b)
{
    return a - b < numeric_limits<double>::epsilon();
}
 
int main()
{
    double x, y;
    cin >> x >> y;
 
    auto days(0u);
    while (f_compare(x, y) && ++days)
        x *= 1.7;
 
    cout << days << endl;
    system("pause");
}
0
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 9
27.07.2016, 20:39  [ТС]
stzer, c=1, так как если a>=b сразу, то это считается за один день и мы просто выводим c.

Добавлено через 5 минут
Ferrari F1, К сожалению, ваш код тоже не прошел все тесты, но... к удивлению, он прошел те тесты, которые не были пройдены ранее.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
27.07.2016, 20:43
Nikita Pop, тогда так сделайте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <limits>
using namespace std;
 
inline bool f_compare(const double& a, const double& b)
{
    return a - b < numeric_limits<double>::epsilon();
}
 
int main()
{
    double a,b;
    int d=1;
    cin>>a>>b;
    while (f_compare(a, b))
    {
        a*=1.7;
        d+=1;
    }
    cout<<d;
}
0
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
27.07.2016, 21:01
Nikita Pop, там стоит do-while, поэтому как минимум одна итерация выполнится
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
27.07.2016, 21:29
Цитата Сообщение от Nikita Pop Посмотреть сообщение
пробег спортсмена составит не менее y километров
Не могу я догнать, как перевести это условие.
Если было введено 2 одинаковых числа, то сколько дней должно вывести?

Добавлено через 6 минут
Уже ничего соображать не могу...
Надо найти верное условие продолжения цикла и правильно сравнивать вещественные числа с учетом точности, все в это упирается

надо поиграться с функцией f_compare, если вариант выше тоже не помогает, еще есть такой вариант тела функции
C++
1
return b - a > numeric_limits<double>::epsilon();
0
 Аватар для HenryDukart
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
27.07.2016, 23:06
Ferrari F1, не читал условие задачи, но мне кажется, что вам нужно добавить модуль.

Добавлено через 13 минут
Nikita Pop, используйте геометрическую прогрессию:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    double x, y;
    cin >> x >> y;
    double tmp = 0.7*y / x + 1;
    int n = ceil(log(tmp) / log(1.7));
    cout << n << endl;
}
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
27.07.2016, 23:20
Лучший ответ Сообщение было отмечено Nikita Pop как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cmath>
 
int main()
{
   double x(0.0);
   double y(0.0);
   std::cin >> x >> y;
   size_t days = 1;
   for(; fabs(x-y)>0.000001 && x<y; x*=1.70){
      ++days;
   }
   std::cout << days;
}
0
 Аватар для HenryDukart
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
28.07.2016, 11:19
Ой, мое решение неверное, так как находит номер дня, на который сумма расстояний превосходит у.
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
28.07.2016, 15:00
HenryDukart, на который пробег спортсмена составит не менее у. (Логично предположить,что расстояние должно быть больше или равно y)
0
 Аватар для HenryDukart
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
28.07.2016, 15:50
Peoples, не в этом ошибка. Я мое решение находит минимальное целое n такое, что x + x*1.7 + ... + x*1.7^(n-1) >= y. Вот, что находил я. Впрочем, это неважно.
0
0 / 0 / 0
Регистрация: 19.07.2015
Сообщений: 9
28.07.2016, 16:38  [ТС]
HelicopterK52, спасибо, ваш код смог
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
28.07.2016, 16:38
Nikita Pop, я в него верил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.07.2016, 16:38
Помогаю со студенческими работами здесь

Определить, через сколько дней общий суммарный пробег спортсмена составит не менее 100 км
Задание: С меня &quot;Спасибо&quot; :)

Определите номер дня, на который пробег спортсмена составит не менее y километров
Пробовала решить по разному, никак не выходит В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал...

Определите номер дня, на который пробег спортсмена составит не менее y километров
В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 70% от предыдущего значения. По данному числу y...

Определите номер дня, на который пробег спортсмена составит не менее Y километров
Помогите с решением задачи, пожалуйста. В Паскале как делать понимаю, а вот с программированием в ВБА проблема.. В первый день спортсмен...

Определите номер дня, на который суммарный пробег спортсмена составит не менее Y километров
помогите пожалуйста срочно В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru