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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2009, 17:17   #1
Nellas
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 11
По умолчанию Несколько задач

Помогите пожалуйста решить 3 задачки

1 задача "Кока-кола"
Одна баночка кока-колы стоит B рублей. Пустую баночку из-под кока-колы можно сдать и получить за неё E рублей. Он покупает кока-колу, выпивает её, сдает баночку, снова покупает кока-колу и так далее до тех пор, пока имеющихся у него денег (после сдачи очередной баночки) хватает на покупку кока-колы.
Сколько всего банок кока-колы он выпьет?
Формат ввода:
Вводится три натуральных числа B, E, R (1<= E<B<=30000, 1 <= R<=30000)
Формат вывода:
Выведите одно число - количество баночек, которое сможет выпить Вася.

2 задача "Манхэттенские улицы"
Система улиц Нью-Йорского района Манхэттен вестма интересна. В Манхеттене есть N улиц, идущие с Севера на Юг (авеню), и M улиц, идущие с Запада на Восток (улицы). Ширина каждого авеню и каждой улицы равна D метров, а длина - L метров. При этом каждая улица пересекает каждый авеню и не имеет общих точек с другими улицами, а каждый авеню пересекает каждую улицу и не имеет общих точек с другими авеню.
Разумеется, все авеню и все улицы имеют асфальтовое покрытие. На перекрестках, естественно, асфальт уложен в один слой. Дорожно-ремонтные службы интересуются, сколько квадратных метров асфальта уложено на все авеню и улицы. Напишите программу, отвечающую на этот вопрос.
Формат ввода:
Вводится четыре натуральных числа N, M, D, L.
1<=N<=1000, 1<=M<=1000, 1<=D<=100, 1<=L<=10000, L>MD, L>ND.
Формат вывода:
Выведите одно число - ответ на задачу.

3 задача "Последовательности"
Семен изобрел новый способ сжатия данных. Правда, он пока умеет сжимать только последовательность из N единиц. Метод сжатия основывается на представлении последовательности из N единиц в виде последовательности чисел от 1 до А так, чтобы суммы членов обеих последовательностей совпадали (т.е. были равны N). Например, последовательность 1,1,1,1,1 при А=3 может быть преобразована в последовательность 1,2,1,1 или 2,3 или другие последовательности.
Ваша задача - посчитать количество способов сжать заданную последовательность придуманным методом.
Формат ввода:
Вводятся два числа N и А (1<=А<=N<=30)
Формат вывода:
Выведите одо число - ответ задачи.
Nellas вне форума Ответить с цитированием
Старый 30.10.2009, 17:23   #2
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

что то Вас-Халявщиков много стало в последнее время! Вы дверью с фрилансом случайно не перепутали?
или кидайте ваши наработки! А для начало правила почитайте!
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 30.10.2009, 17:28   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Хм... Олимпиадные? Нормально оформлены, но слишком простые Хотя, по поводу оформления... Есть недочеты. В первой, что такое R? Начальная сумма? Если да, то проще всего делать симуляцией. Будем куплять максимум баночек, все выпивать, все сдавать, потом снова, снова - пока не останется сумма, меньшая за цену баночки. Понятно, что покупать надо не циклическим декремингом, а целочисленным делением/взятием по модулю.

Во второй площадь равна: сумма площадей отдельных полос - сумма площадей пересечений. Площадь пересечения равна произведению ширины авеню на ширину улицы, а количество пересечений - произведению количеств.

В третьей количество неупорядоченных разбиений на слагаемые, динамика, для каждой суммы остатка от н до 1 храним в памяти количество разбиений с последним слаогаемым от 1 до н (edit - до а), тоесть квадратная матрица и обход за квадрат, а дальше просто суммируем все числа для суммы н - мы получим общее количество разбиений с последним числом 1, с последним числом 2 и т.д., что и будет ответом.
Для начального формального заполнения можно рассматривать элемент (н,0), равный 1 (на практике это значит, что существует 1 пустая последовательность).

Последний раз редактировалось LeBron; 30.10.2009 в 18:05.
LeBron вне форума Ответить с цитированием
Старый 30.10.2009, 17:41   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

1
Код:
if R>=B then
count:=R div (B-E)
else count:=0;
так пойдет?
2
Код:
S:= L*D*(M+N)-(M*N)*D*D;
остальное - в аське или лс - договоримся
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 30.10.2009 в 17:54.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 30.10.2009, 17:49   #5
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от ОДИНОЧЕСТВО В СЕТИ Посмотреть сообщение
1
Код:
count:=R div (B-E);
Первое неверно. Можно подходить с этой стороны, но это будет слишком трудно для новичков, хотя при ограничениях, скажем, до 10 в 18ом именно так и решается, но надо много чего прописать - там обработка крайней симплексат-точки ведь нелинейная. Самый простой пример - 11 10 1. Ваше решение даст 1, так как 1/1=1. На самом деле ответ 0 - так как цена 11 рублей, а у нас всего рубль.
LeBron вне форума Ответить с цитированием
Старый 30.10.2009, 17:51   #6
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

первая

Код:
#include <stdio.h>

int main(void)
{
    int B,E,R,i,sum=0;
    scanf("%d", &B);
    scanf("%d", &E);
    scanf("%d", &R);
   ((B-E) > R) ? printf("sum = %d\nVasya lopnul=)\n", R/(B-E)) : printf("sum = 0");
    return 0;
}

Последний раз редактировалось NiCola999; 30.10.2009 в 17:58.
NiCola999 вне форума Ответить с цитированием
Старый 30.10.2009, 17:51   #7
Nellas
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от LeBron Посмотреть сообщение
Хм... Олимпиадные? Нормально оформлены, но слишком простые Хотя, по поводу оформления... Есть недочеты. В первой, что такое R? Начальная сумма? Если да, то проще всего делать симуляцией. Будем куплять максимум баночек, все выпивать, все сдавать, потом снова, снова - пока не останется сумма, меньшая за цену баночки. Понятно, что покупать надо не циклическим декремингом, а целочисленным делением/взятием по модулю.
да просто работа какая-то. R начальная стоимость. сори проглядел)
Nellas вне форума Ответить с цитированием
Старый 30.10.2009, 17:57   #8
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
первая

Код:
#include <stdio.h>

int main(void)
{
    int B,E,R,i,sum=0;
    scanf("%d", &B);
    scanf("%d", &E);
    scanf("%d", &R);
    for(i=R; i>0; i-=(B-E))
        sum++;
    printf("sum = %d\nVasya lopnul=)\n", sum);
    return 0;
}
Тоже неверно. Начнем с того, что у Вас в большинстве "обычных" случаев лишняя единица в конце будет. Но даже без нее неверно.
LeBron вне форума Ответить с цитированием
Старый 30.10.2009, 18:00   #9
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
   (B <= R) ? printf("sum = %d\n", R/(B-E)) : printf("sum = 0");

Последний раз редактировалось NiCola999; 30.10.2009 в 18:08.
NiCola999 вне форума Ответить с цитированием
Старый 30.10.2009, 18:01   #10
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Тоже неверно
ваше то предложение кодом можно глянуть?
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько задач hvaran Помощь студентам 0 07.07.2009 17:31
Несколько задач. GoldMan Паскаль, Turbo Pascal, PascalABC.NET 1 02.12.2008 15:14
Паскаль, несколько задач. DarkAn Помощь студентам 8 03.11.2008 15:40
[C++] Несколько задач Алиса111 Помощь студентам 1 15.01.2008 03:52
Несколько задач Wilda Паскаль, Turbo Pascal, PascalABC.NET 5 05.12.2007 19:03