nzaripova313
?>

Входные данные дана последовательность натуральных чисел, в конце которой идет число 0. выходные данные определите, сколько элементов этой последовательности больше предыдущего. числа, идущие за нулем, считывать не нужно. язык python или pascal

Информатика

Ответы

tyrenumberone
PascalABC.NET 3.4.2, сборка 1843 от 24.10.2018Внимание! Если программа не работает, обновите версию!

begin

 ReadSeqIntegerWhile(t -> t <> 0).Incremental

     .Where(t -> t > 0).Count.Println

end.

6 -8 9 -8 -5 7 7 -5 9 2 -8 10 1 -3 2 4 -2 -1 -4 08
oskar-pn

ans = 0

a, b = 1, -1

while b != 0:

   a, b = b, int(input().strip())

   if a < b and a != -1:

       ans += 1

print(ans)

Valentina1520
Во вложении приведен рисунок, из которого видно принятое расположение треугольника. Треугольник прямоугольный и уравнение его гипотенузы можно получить из формулы уравнения прямой в отрезках.
Алгоритм решения следующий.
1. Вводим значения a и b.
2. Очищаем переменную счетчика количества k нулём.
3. В цикле по х от 0 с шагом 1 до целой части b:
- вычисляем целую часть y, найденного из приведенного уравнения
- увеличиваем k на эту целую часть плюс 1
4. Выводим значение k.

Проверим этот алгоритм для нашего рисунка.
a=3, b=4, y=³/₄(4-x), k=0
Для х=0 получаем у=3 и увеличиваем k на 3+1=4, т.е. k=4
Для х=1 получаем у=2.25, целая часть 2 и увеличиваем k на 2+1=3, т.е. k=7
Для х=2 получаем у=1.5, целая часть 1 и увеличиваем k на 1+1=2, т.е. k=9
Для х=3 получаем у=0.75, целая часть 0 и увеличиваем k на 0+1=1, т.е. k=10
Для х=4 получаем у=0, целая часть 0 и увеличиваем k на 0+1=1, т.е. k=11
Значение 11 выводим.
Из рисунка видно, что точек действительно 11.

1. Современное решение

// PascalABC.NET 3.2, сборка 1425 от 22.04.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a,b:real;
  Write('Введите значения a и b через пробел: '); Read(a,b);
  Writeln(Range(0,Trunc(b)).Select(x->Trunc(a/b*(b-x))+1).Sum)
end.

Контрольный пример
Введите значения a и b через пробел: 3 4.0
11

2. Школьное решение в стиле ТурбоПаскаль 1983г.

var
  a,b,y:real;
  k,x:integer;
begin
  Write('Введите значения a и b через пробел: '); Read(a,b);
  k:=0;
  for x:=0 to Trunc(b) do begin
    y:=a/b*(b-x);
    k:=k+Trunc(y)+1
    end;
  Writeln(k)
end.

Сколько точек с целыми координатами в треугольникaob находящийся в первой четверти? напишите програм
mursvita943
Из 24 можно получить 0 так: 24 --> 12 --> 6 --> 4 --> 2 --> 0
Итого 5 шагов
Чтобы понять, что это самый короткий вариант, пойдём с конца:
0 --> 2 (так как умножать 0 на 2 не имеет смысла, то прибавляем 2) --> 4 (этот результат получается в любом случае) --> 6 (так как отсюда мы быстро получим число 12, которое является половиной от 24) --> 12 --> 24

Из 293 не получить 0, так как 293 - нечётное число

Из 297 можно получить 13 за 142 шага, так как 297 - нечётное число, а это значит, что можно только уменьшать на 2

Из 297 можно получить 43 за 127 шагов (аналогично предыдущему примеру)

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Входные данные дана последовательность натуральных чисел, в конце которой идет число 0. выходные данные определите, сколько элементов этой последовательности больше предыдущего. числа, идущие за нулем, считывать не нужно. язык python или pascal
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

helenya
diana0720
xcho1020
printdecor
secretar62
Aleks120498
jim2k
idalbaev
beliaeva2
beyound2006193
chapaevval
thecoffeeowl
Тихонова
Владимирович_Намик59
Kashirina