Помощь - Поиск - Пользователи - Календарь
Полная версия: кол-во чисел.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
100CENT
Необходимо найти количество таких целых чисел X, что A<=X<=B.

Входные данные
В первой строке записано A, во второй - B. A и B действительные (|A|, |B|<=10^9) с не более чем двумя знаками после запятой.

Выходные данные
Выведите ответ на задачу.

Пример

Ввод

-2
1.5


Вывод

4

каие предложения по решению???
klem4
А сам что-нибудь пробовал делать ?
Гость
да. while и пока не больше в считать.
virt
Код
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);
100CENT
я конечно понимаю что код дело хорошее,но когда он правильный то это лучше.
klem4
Пеcпочвенный претензии, не подтвержденные фактами не принимаются
100CENT
то что получается у Virt не соответствует ответу.(по семплу).
Altair
klem4,
Код
Ввод

-2
1.5


Вывод

4

согласен программа неправильная..
выводит 3
klem4
Ответ 3 - верный, в промежутке (-2 .. 1.5) находятся 3 числа

это : -1,0,1

ааа ну это если не строго брать, извиняюсь.
100CENT
-2 -1 0 1.
Altair
Цитата
Ответ 3 - верный, в промежутке (-1.5 .. 2) находятся 3 числа

ты откуда такой пример взял ? вот тебе задан отрезок :
[-2, 1] ... и скобочки квадратные...

Цитата

-3
-4
0

а должно юбыть 2
100CENT
Цитата(Altair @ 28.12.2005 21:55) *

ты откуда такой пример взял ? вот тебе задан отрезок :
[-2, 1] ... и скобочки квадратные...

Скобочки квадратные означают что число принадлежит этому интервалу. а -2 принадлежит.
Altair
100CENT, да ты меня не понял smile.gif я как раз говорю, что программа которую привел ВИрт неверная smile.gif
Гость
Цитата(Altair @ 28.12.2005 21:58) *

100CENT, да ты меня не понял smile.gif я как раз говорю, что программа которую привел ВИрт неверная smile.gif

тогда все окей. программист ошибается трижды. при выборе профессии,при рождении и когда всякая мелочь не работает. smile.gif
volvo
Ребята, я не понял, зачем извращаться с +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.

Чем не устраивает?
klem4
nea.gif

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
100CENT
Клем, volvo это не всегда работает. моя тестсистема показала 23из30 тестов.
klem4
Нука запусти свои тесты :

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.
volvo
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.
100CENT
Цитата(klem4 @ 28.12.2005 22:28) *
Нука запусти свои тесты :

22 теста. из 30
Altair
smile.gif ничего себе.. такая простая задача а тесты не проходит... значит тесты хорошие... good.gif
100CENT
0.5 .7 и по целым. глючит иногда.
volvo
Цитата
22 теста. из 30
Что-то ты мудришь... Ну-ка приведи сами тесты... Есть подозрение, что ты просто издеваешься... mad.gif
Мы тоже тестировать умеем... Не ты один...
klem4
В моей последней проге точно ошибка, протестиру прогу volvo последнюю..
100CENT
Господа программисты, что нет больше идей???
Гость
volvo? я бы рад. но тесты нам не дают. честно не издеваюсь.честное кодерское.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.