Информация о задаче

Автор, источник

 

Олимпиада

Муниципальный этап олимпиады в Ханты-Мансийском АО-Югре, 2009-2010 уч. год, 7-9 классы, 1-й тур

Тематика

Целочисленная арифметика

Примерная сложность

30%

Ссылки в Интернете

Условие –

Разбор –

Тесты –

Сдача решения –

Наш сайт

Сдача решения –

Тесты – Rar

Задача подготовлена

Автор, дата –  Алексеев А.В., 24.05.2012

 

028. Сумма n-значных чисел

(Время - 1 сек., память - 16 Мб)

По заданному n найти сумму всех n-значных чисел.

Входные данные

В единственной строке входного файла input.txt записано одно натуральное число n (1  n  100).

Выходные данные

В единственную строку выходного файла output.txt нужно вывести все цифры суммы всех n-значных чисел.

Примеры

input.txt

output.txt

1

1

45

2

2

4905

Разбор

Всего существует 900…0 (n-1 нуль) n-значных чисел от 100…0 (n-1 нуль) до 999…9 (n девяток). Если их все сложить по формуле для суммы арифметической прогрессии, то получится число (100…0+999…9)*900…0/2. Проведём вычисления в указанном порядке, как учат в школе столбиком. Число в скобках будет равно 1099…9 (n-1 девятка). Умножим его на 900…0 (n-1 ноль) получим число 9899…9100..0, в котором по n-1 девятке (не считая первую) и нулю. Также школьным правилом деления столбиком поделим полученное число на два. Имеем число 49499…95500…0, в котором подряд записаны n-3 девятки и n-2 нуля. Отдельно рассматриваем одно- и двузначные числа, так как они не подходят под полученную схему вычисления.

Программа на Паскале

Var n, i : integer;

begin

  assign(input,'input.txt'); reset(input);

  assign(output,'output.txt'); rewrite(output);

  read(n);

  if n=1 then write(45) else

  if n=2 then write(4905) else begin

    write(494); for i:=1 to n-3 do write(9);

    write(55); for i:=1 to n-2 do write(0)

  end; close(output)

end.

Программа на С