0 / 0 / 0
Регистрация: 05.11.2019
Сообщений: 80
1

Определить на сколько часов освещения хватит свечек

14.07.2020, 06:39. Показов 1969. Ответов 1
Метки нет (Все метки)

A. Новогодние свечки

Программист Василий любит романтику — поэтому на этот Новый Год он решил освещать свою комнату свечами.

У Василия есть a свечей. Когда Василий зажигает новую свечу, сначала она горит ровно один час, а затем тухнет. Василий — сообразительный малый, поэтому из b потухших свечей он умеет получать одну новую свечу. В последствии эту новую свечу (так же как и другие новые свечи) можно зажечь.

Теперь Василию интересно, на сколько часов освещения хватит его свечек, если он будет действовать оптимальным образом. Помогите ему найти это число.

Входные данные
В единственной строке заданы два целых числа a и b (1 ≤ a ≤ 1000; 2 ≤ b ≤ 1000).

Выходные данные
Выведите единственное целое число — количество часов, которое Василий сможет освещать комнату.

Примеры:
входные данные
4 2
выходные данные
7
входные данные
6 3
выходные данные
8
Примечание
Рассмотрим первый тестовый пример. Первые четыре часа Василий будет зажигать свечи, которые изначально были новые, дальше из четырех потухших свечей он сделает две новые, которые в последствии зажжет. Когда эти две свечи прогорят (станут потухшими), можно будет из них сделать еще одну свечу. Итого, Василий сможет освещать комнату 7 часов.[/CENTER][/RIGHT]

Пожалуйста, помогите доделать, я чёт туплю жестко под конец:
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
        int newCandlesCount, oldCandles, oldCandlesPrice, oldToNew, hours;
 
        cin >> newCandlesCount >> oldCandlesPrice;
 
        hours = 0;
        oldCandles = 0;
        for (int i = 1; i <= newCandlesCount; i++) {
                oldCandles = i;
        }
 
        oldToNew = oldCandles / oldCandlesPrice;
        while () {
                newCandlesCount += oldCandles / oldCandlesPrice;
                oldCandles /= oldCandlesPrice;
 
        }
 
        hours = newCandlesCount;
        cout << hours << endl;
        return 0;
 
}
Я завис на том моменте, когда из старых свечей мы должны поолучать новые, пока старые вообще не закончатся. Как это сделать?
капец я затупок
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2020, 06:39
Ответы с готовыми решениями:

C клавиатуры вводится К-количество часов .Определить сколько полных часов ,минут,секунд
C клавиатуры вводится К-количество часов .Определить сколько полных часов ,минут,секунд (укзать в...

Определить, на сколько лет хватит мощности станции
program energiya; uses Crt; var n:real;//можность станции w:real;//потребляемая и...

Измеритель уровня освещения для цифровых часов
Хочу сделать электронные часы со светодиодными индикаторами. Подсмотрел дизайн в нигазине, кое-чего...

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

1
Модератор
2181 / 1543 / 838
Регистрация: 16.10.2013
Сообщений: 4,546
Записей в блоге: 12
14.07.2020, 07:26 2
Лучший ответ Сообщение было отмечено Isaljack как решение

Решение

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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    int newCandlesCount, oldCandles, oldCandlesPrice, hours;
    
    cin >> newCandlesCount >> oldCandlesPrice;
 
    // все новые свечи сгорели
    oldCandles = newCandlesCount;
    hours = oldCandles;
    newCandlesCount = 0;
 
    // пока мы может делать из старых свечей новые
    while (oldCandles >= oldCandlesPrice) {
            newCandlesCount = (oldCandles / oldCandlesPrice); // делаем новые свечи
            oldCandles %= oldCandlesPrice; // старых свечей осталось
            hours += newCandlesCount; // сделанные свечи горят
            oldCandles += newCandlesCount; // к старым свечам добавляем прогоревшие свечи
    }
 
    cout << hours << endl;
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2020, 07:26
Помогаю со студенческими работами здесь

Определить, сколько часов работал станок
Помогите перевести в PascalABC, буду очень благодарен. program ZAVOD; uses Crt; const max =...

Определить, сколько часов занятий пропустил студент
Каникулы длятся в период с Дата1 по Дата2 . Сколько часов занятий пропустил студент, если он...

Определить, сколько часов проработала вся бригада
В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка работала m часов, а...

Определить сколько часов проработала вся бригада
В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка работала m часов, а...

Определить, сколько прошло часов и минут с понедельника
сколько прошло часов и минут с понедельника

Определить, сколько часов требуется спать в сутки
Из передачи “Здоровье” Аня узнала, что рекомендуется спать хотя бы A часов в сутки, но пересыпать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru