![]() | ![]() |
program GW;
var k, N, l: integer;
begin
write('N = ');
readln(N);
k:=0;
l:=1;
if N mod 10 = 0 then
writeln('Eror')
else
begin
while N > 0 do
begin
k:= k+1;
if (k=9) or (k=99) or (k=999) or (k=9999) or (k=99999) or (k=999999) then
l:= l+1;
N:= N-l;
end;
writeln('k = ', k);
end;
end.
![]() | ![]() |
нутакахуливотскокаучасниковбуитесиN=18467454, тобиш количество розрядов числа =18467454???k = 2795508

![]() | ![]() ![]() |
LockeD, понял чувак!

у моем решении переменная i никак не может быть 10! потому что, если учасников будет 10, то число получится 11-тизначное

а если 9, то 9-тизначное!

10-тинутакахуливотскокаучасниковбуитесиN=18467454, тобиш количество розрядов числа =18467454???
![]() | ![]() |

у моем решении переменная i никак не может быть 10! потому что, если учасников будет 10, то число получится 11-тизначное

а если 9, то 9-тизначное!

10-тизначным число не может быть!
моя программа столько не насчитает, но если вводить эти значения самому, то придется исключать значения кратные 10-ти
![]() | ![]() |
блеать, а надо что бы ошибочное былоблять. я себе задачу усложнил. у меня нет ошибочных! все что больше 1 прокатит. в переменную i программа насчитает сколько знаков в этом числе было. если вписывать это число самому, то ошибочным будет число меньше 0


![]() | ![]() ![]() |
LockeD, ты мой код смотрел? ты его тестил?

![]() | ![]() ![]() |
10 не ошибочное. это оно логически ошибочное, ибо счет начинается с 1, а программа сначала поделит его на 1, потом на 10, на 100 уже не поделит, и при этом насчитает, что число 2знасное.

ошибблеать, а надо что бы ошибочное было
![]() | ![]() |

![]() | ![]() |
а какие n будут ошибочными???


ошибочными будут числа 0 и менше

![]() | ![]() ![]() |
нет. там все нормально работает


![]() | ![]() |

![]() | ![]() |

![]() | ![]() |
получается ошибочными будут N кратные 10?нет. там все нормально работает

![]() | ![]() ![]() |
![]() | ![]() |
чотавашпенихуянипонилблеатья брал число которое утворилось, вычитывал сколько там знаков, а потом узнавал сколько человек брало участвие

![]() | ![]() ![]() |
блять. тогда мое решение можна урезать у половину

![]() | ![]() |
так N - это же количество розрядов, тобиш количество знаков, но не само это числоблять. тогда мое решение можна урезать у половину

![]() | ![]() ![]() |
да. ошибочного не учел, а остальное работает правильно.
.gif)
longint это тот же integer он, как видишь, принимает 10-ти значное число. а число 12345678910 - 11-ти значное, от этого следует, что учасникотак N - это же количество розрядов, тобиш количество знаков, но не само это число
![]() | ![]() |
да ну, этого не может быть, кст не учел ошибочного N (в таком случае выводим -1)
ЗЫ longint ±2147483647, естественно отрицательных учасников тоже не может бытьда. ошибочного не учел, а остальное работает правильно.
.gif)
longint это тот же integer он, как видишь, принимает 10-ти значное число. а число 12345678910 - 11-ти значное, от этого следует, что учасников не может быть больше 9-ти! для того чтобы их было 10 и больше я брал int64

![]() | ![]() ![]() |
Кстати я соврал, 99 участников это 189значное число.
189 - 9 = 180 (99-9 = 90) // отнимаем первых 9 участников
180 / 2 = 90 // оставшиеся 90, с двухзначными номерамипоэтому этому N - longint