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*
Комментарий*

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

Yeliseeva Verevkin864
впвыпвып-Зуйков629
arturusinsk5
karpachevamarina
petrakovao
prianik6
sssashago8
lebedevevgen
fakelel
club-pushkin
vipteatr
marim1994361
mantseva
iraira761
gallows-warlike-0z