|  | 
|  | 
| вернуться в форум | Почему не засчитывает?Why does not count?№1068.PascalABC Послано Yura  23 дек 2016 10:30vara: integer;
 b: real;
 
 begin
 readln(a);
 if (abs(a) < 10001) then
 begin
 if (a < 0) then
 b := (a + 1) * (-a + 2) / 2
 else b := 0;
 if (a > 0) then
 b := (a + 1) * a / 2 else
 if (a < 0) then
 b := (a + 1) * (-a + 2) / 2
 else b := 1;
 writeln(b);
 end;
 end.
Re: Почему не засчитывает?Why does not count?№1068.PascalABC Я так понимаю, ты используешь тип real для b, потому что / не работает. Следует помнить, что для целочисленного деления нужно использовать div, а не /.То есть, вариант 1 — заменить b: real на b: integer и все / на div.
 Вариант 2 — можно продолжать использовать /, но вместо writeln(b) следует написать writeln(b:0:0) (второе :0 — количество знаков после запятой для вывода).
 Также, проверки типа if (abs(a) < 10001) не нужны — если в задаче сказано о таком ограничении на входные данные, значит в тестах так честно и будет, и не нужно это проверять.
Re: Почему не засчитывает?Why does not count?№1068.PascalABC Послано Ahmet  19 окт 2023 22:35А у меня тоже такая же проблема:
 var N: integer;
 begin
 readln(n);
 if (abs(n)>10000) then writeln('Îøèáêà ââîäà') else
 if N>=0 then writeln(((1+n)*n)/2)
 else writeln(((1+n)*(abs(n)+2))/2);
 end.
 
 IS that wrong answer?
 | 
 | 
|