Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2012, 09:54   #1
harvey
Пользователь
 
Регистрация: 18.09.2012
Сообщений: 25
По умолчанию Определить сумарный пробег за 10 дней

Задача С++
Спортсмен в первый день пробежал 2 км.Каждый последующий день он увеличивал свой пробег на 20%.Определить его сумарный пробег за 10 дней.
harvey вне форума Ответить с цитированием
Старый 19.09.2012, 09:57   #2
AlexMas
Пользователь
 
Аватар для AlexMas
 
Регистрация: 30.05.2012
Сообщений: 69
По умолчанию

int sum = 0;
int d = 2;
for (int i=0; i<10; i++)
{
d = d*0.2;
sum = sum+d;
}
AlexMas вне форума Ответить с цитированием
Старый 19.09.2012, 10:57   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Хм... не так все просто. Уточните - на 20% от предыдущего дня или от первого?

а то у меня товарищ так в банке кредитную карту взял и не уточнил, от какой суммы закрывать долг - оказалось, от общего объема кредитки: снял 20 килорублей, а платил как за 50
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 19.09.2012, 13:25   #4
harvey
Пользователь
 
Регистрация: 18.09.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Хм... не так все просто. Уточните - на 20% от предыдущего дня или от первого?

а то у меня товарищ так в банке кредитную карту взял и не уточнил, от какой суммы закрывать долг - оказалось, от общего объема кредитки: снял 20 килорублей, а платил как за 50
скорее всего от предыдущего дня
harvey вне форума Ответить с цитированием
Старый 19.09.2012, 13:33   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

AlexMas немного ошибся: его программа не учитывает 2 километра первого дня.
Надо так:

Код:
int sum=2;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 20.09.2012, 14:17   #6
AlexMas
Пользователь
 
Аватар для AlexMas
 
Регистрация: 30.05.2012
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
AlexMas немного ошибся: его программа не учитывает 2 километра первого дня.
Надо так:

Код:
int sum=2;
там вообще все неправильно =)

Вот верное решение:
Код:
double sum = 0;
double d = 2;
for (int i=0; i<10; i++)
{
        d = d*1.2;
        sum = sum+d;
}
Но sum в начале, однозначно, равна 0.
AlexMas вне форума Ответить с цитированием
Старый 20.09.2012, 14:24   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
d*1.2
И то верно

Цитата:
Но sum в начале, однозначно, равна 0.
Смотрим внимательно: в первый день - 2 км. Во второй - 2*1.2; в третий (2*1.2)*1.2 (и так далее со второго дня по десятый включительно - всего девять дней).

У Вас же она считает все 10 дней (с 0 по 9) как d*1.2

Так что я настаиваю на нижеприведенном варианте

Код:
int sum = 2;
int d = 2;
for (int i=1; i<10; i++)
{
d = d*1.2;
sum = sum+d;
}
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 20.09.2012, 14:34   #8
AlexMas
Пользователь
 
Аватар для AlexMas
 
Регистрация: 30.05.2012
Сообщений: 69
По умолчанию

строки просто местами поменять
sum = sum+d;
d = d*1.2;

Последний раз редактировалось AlexMas; 20.09.2012 в 14:36.
AlexMas вне форума Ответить с цитированием
Старый 20.09.2012, 14:52   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Логично. Как говорится, "сымаю шляпу"
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 20.09.2012, 15:03   #10
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

а зачем цикл? если от предыдущего дня, то это сумма десяти первых элементов геометрической прогрессии. т.е.
Код:
результат =  2*( 1 - (1,2)^10)/(1 - 1,2)
з.ы. на C сами переведёте)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить сколько дней до конца года С SimplyZero Помощь студентам 11 10.10.2012 20:50
Вывести на экран пробег спортсмена за каждый день и суммарный пробег KriSSka Паскаль, Turbo Pascal, PascalABC.NET 7 07.04.2012 00:22
сумарный отчет vaga Microsoft Office Access 2 22.09.2009 15:32
определить день недели по заданному числу (считать в месяце 30 дней и первый день месяца понедельник dan1991 Помощь студентам 1 01.03.2009 20:59
Пробег км Romuald Microsoft Office Excel 4 12.02.2009 16:44