Предмет: Информатика, автор: leshahitman

Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста?

Входные данные
Программа получает на вход натуральные числа h, a, b. Гарантируется, что a>b.

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

Примечание
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.

Примеры
входные данные
10
3
2
выходные данные
8
входные данные
20
7
3
выходные данные
5

Ответы

Автор ответа: archery
0
var
    d, a, b, h, s: integer;

begin
    readln(h, a, b);
    {проверка}        
    d := 0;
    s := 0;
    repeat
        d := d + 1;
        s := s + a;
        if s >= h then break;
        
        s := s - b;
    until s >= h;
    writeln('Проверка дней = ', d);
    writeln();
    
    {решение без циклов и условных операторов}
    h := h - a;
    b := a - b;
    s := (b - h mod b) mod b; {добавка до целого}
    d := 1 + (h + s) div b;
    writeln('Дней = ', d);    
end.
Автор ответа: archery
0
изобретение этой добавки до целого заняло время, ведь обычно это решается или через функцию, которой в паскале нет или через условный оператор
Автор ответа: A1dar
0
Это задача дается после изучения целых чисел и действий над ними, вот выведенная формула: 1 + ((abs(h - a) + h - a) div 2 + a - b - 1) div (a - b)
Автор ответа: A1dar
0
Решение хоть и удовлетворяет условию, но уж никак не рациональное
Автор ответа: A1dar
0
1 + (h - b - 1) / (a - b) или даже (то же самое, что и решение ниже)
Автор ответа: A1dar
0
1 + (h - b - 1) div (a - b)*
Автор ответа: Аноним
0
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
  var h,a,b:integer;
  Write('Введите h a b: '); Read(h,a,b);
  Writeln(Ceil((h-a)/(a-b))+1)
end.

Примеры решения
Введите h a b: 10 3 2
8

Введите h a b: 20 7 3
5
Похожие вопросы
Предмет: Русский язык, автор: we74453
Прочитай текст. Предложи несколько вариантов заголовка.

Выпиши из текста собственные имена, распределяя их по группам: исторические названия; астрономические названия; мифологические имена; имена и фамилии людей. Какие слова попадут сразу в две группы? Проверь свою работу по образцу в рубрике «Возможный ответ».

Текст
Планеты в Древней Греции под влиянием Вавилона, где планеты были хорошо изучены и именовались по главным богам, получили названия Гермес, Афродита, Арес, Зевс, Крон. Усвоив вместе с астрономической мудростью эти названия, римляне заменили их именами своих богов. Так появился ныне употребительный ряд: Меркурий, Венера, Марс, Юпитер, Сатурн. Древние знали только эти пять планет. Планеты Солнечной системы, находящиеся за Сатурном, были открыты с помощью математических расчётов и телескопа: Уран — в 1781 г. (В. Гершель), Нептун — в 1846 г. (по расчётам У. Леверье).
(По Ю. А. Карпенко. Названия звёздного неба)