Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста?
Входные данные
Программа получает на вход натуральные числа h, a, b. Гарантируется, что a>b.
Выходные данные
Программа должна вывести одно натуральное число.
Примечание
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.
Примеры
входные данные
10
3
2
выходные данные
8
входные данные
20
7
3
выходные данные
5
                        
                            
                            
                    Ответы
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    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.
                                    
                                        
                                        
                                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.
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        изобретение этой добавки до целого заняло время, ведь обычно это решается или через функцию, которой в паскале нет или через условный оператор
                                    
                                        
                                        
                                
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        Это задача дается после изучения целых чисел и действий над ними, вот выведенная формула: 1 + ((abs(h - a) + h - a) div 2 + a - b - 1) div (a - b)
                                    
                                        
                                        
                                
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        Решение хоть и удовлетворяет условию, но уж никак не рациональное
                                    
                                        
                                        
                                
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    0
                                                
                                            
                                        
                                    
                                        1 + (h - b - 1) / (a - b) или даже (то же самое, что и решение ниже)
                                    
                                        
                                        
                                
                                            Ответ дал: 
                                                                                    
                                        
                                            
                                                
                                                
                                                
                                                    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
                                    
                                        
                                        
                                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
Вас заинтересует
                
                        2 года назад
                    
                
                        7 лет назад
                    
                
                        9 лет назад
                    
                
                        9 лет назад
                    
                
                        10 лет назад