• Помогите решить задачу по информатике на языке pascal


    Число Х получают следующим образом: слева на право записывают без пробелов подряд числа от 1 до N (123456...N). По заданному числу N определить, сколько цифр в числе Х.
    Помогите пожалуйста, даю много баллов, программировать умею, саму задачу не понимаю.

Ответы 4

  • Спасибо !!!!
  • Я проверил) Просто огромнейшее спасибо !!!!
  • var   s: biginteger;   n,i: int64;   ar:array of int64=(9,90,900,9000,90000,900000,9000000,90000000); begin   i:=1;   read(n);   while n-ar[i-1]>=0 do begin   s:=s+(ar[i-1]*i);   n:=n-ar[i-1];   i:=i+1;   end;   if(n>0)then begin s:=s+(n*i);   end;   write(s); end.
  • Можно покороче и без biginteger, и без массивов)))var  n,k,s,m,p:longint;begin  Read(n);  s:=0; k:=0; m:=1; p:=n;  repeat    inc(k);    if p<10 then s:=s+k*(n-m+1)    else begin s:=s+k*9*m; m:=10*m end;    p:=p div 10  until p=0;  Writeln(s); end.Примеры:55152112025215353239636157
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years