|
|
back to boardDiscussion of Problem 1068. SumПочему не засчитывает?Why does not count?№1068.PascalABC Posted by Yura 23 Dec 2016 10:30 var a: 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 Posted by Ahmet 19 Oct 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? |
|
|