Необходимо найти количество таких целых чисел X, что A<=X<=B.
Входные данные
В первой строке записано A, во второй - B. A и B действительные (|A|, |B|<=10^9) с не более чем двумя знаками после запятой.
Выходные данные
Выведите ответ на задачу.
Пример
Ввод
-2
1.5
Вывод
4
каие предложения по решению???
А сам что-нибудь пробовал делать ?
да. while и пока не больше в считать.
Код
aa,bb : longint;
aa := trunc(a);
if a <> aa then aa := aa + 1;
bb := trunc(b);
if b <> bb then bb := bb - 1;
writeln(bb - aa + 1);
я конечно понимаю что код дело хорошее,но когда он правильный то это лучше.
Пеcпочвенный претензии, не подтвержденные фактами не принимаются
то что получается у Virt не соответствует ответу.(по семплу).
klem4,
Код
Ввод
-2
1.5
Вывод
4
согласен программа неправильная..
выводит 3
Ответ 3 - верный, в промежутке (-2 .. 1.5) находятся 3 числа
это : -1,0,1
ааа ну это если не строго брать, извиняюсь.
Цитата
Ответ 3 - верный, в промежутке (-1.5 .. 2) находятся 3 числа
ты откуда такой пример взял ? вот тебе задан отрезок :
[-2, 1] ... и скобочки квадратные...
Цитата
-3
-4
0
а должно юбыть 2
Цитата(Altair @ 28.12.2005 21:55)
ты откуда такой пример взял ? вот тебе задан отрезок :
[-2, 1] ... и скобочки квадратные...
Скобочки квадратные означают что число принадлежит этому интервалу. а -2 принадлежит.
100CENT, да ты меня не понял
я как раз говорю, что программа которую привел ВИрт неверная
Цитата(Altair @ 28.12.2005 21:58)
100CENT, да ты меня не понял
я как раз говорю, что программа которую привел ВИрт неверная
тогда все окей. программист ошибается трижды. при выборе профессии,при рождении и когда всякая мелочь не работает.
Ребята, я не понял, зачем извращаться с +1/-1 ?
var
a, b: double;
aa, bb: longint;
begin
a := -2.00; b := 1.50;
aa := trunc(a);
bb := trunc(b);
writeln(bb - aa + byte(aa < bb));
end.
Чем не устраивает?
var
a, b: double;
aa, bb: longint;
begin
a := -2.3; b := -1.1;
aa := trunc(a);
bb := trunc(b);
writeln(bb - aa + 1);
end.
должно выдать 1
Клем, volvo это не всегда работает. моя тестсистема показала 23из30 тестов.
Нука запусти свои тесты :
var
a, b: double;
aa, bb: longint;
begin
readln(a,b);
aa := trunc(a);
bb := trunc(b);
if b <0 then bb := trunc(b) - 1;
writeln(abs(bb-aa)+1);
end.
klem4, Не совсем... Я бы сделал так:
var
a, b: double;
aa,bb: longint;
begin
a := -2.3; b := 3.3;
aa := trunc(a); if a > 0 then aa := aa + 1;
bb := trunc(b); if b < 0 then bb := bb - 1;
writeln((bb - aa) + 1);
end.
Цитата(klem4 @ 28.12.2005 22:28)
Нука запусти свои тесты :
22 теста. из 30
ничего себе.. такая простая задача а тесты не проходит... значит тесты хорошие...
0.5 .7 и по целым. глючит иногда.
Цитата
22 теста. из 30
Что-то ты мудришь... Ну-ка приведи сами тесты... Есть подозрение, что ты просто издеваешься...
Мы тоже тестировать умеем... Не ты один...
В моей последней проге точно ошибка, протестиру прогу volvo последнюю..
Господа программисты, что нет больше идей???
volvo? я бы рад. но тесты нам не дают. честно не издеваюсь.честное кодерское.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.