e-olymp 11. Большая точность

Большая точность:

Дана рациональная дробь [latex]\frac{m}{n}[/latex]. Запишите её в виде десятичной дроби с точностью [latex] k[/latex] знаков после запятой.

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

В одной строке записано 3 числа [latex]m,n,k[/latex]. [latex]{{0}<{m,n}\leq{100}}[/latex], [latex]{{0}\leq{k}\leq{1000}}[/latex].

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

Вывести [latex]k[/latex] точных значащих цифр после десятичной точки искомого числа.

Алгоритм решения:

Разделим [latex]m[/latex] на [latex]n[/latex] в столбик. Определим, сколько раз [latex]n[/latex] помещается в [latex]m[/latex]. Это будет целая часть частного. Умножим ее на [latex]n[/latex] и отнимем от [latex]m[/latex]. Таким образом получим остаток от деления. Будем умножать его на [latex]10[/latex] (эквиваленто сноске [latex]0[/latex]) и  проводить такую же операцию, как при нахождении целой части пока не закончится цикл. Так мы определим количество всех цифр после запятой, кроме последней. Последнюю будем находить в отдельном цикле для точности округления. Если идущая за ней цифра больше или равна [latex]5[/latex], то будем увеличивать ее на [latex]1[/latex], в противном случае — нет.

 Код программы:

 

Проверка:

  1. (По условию задачи):
Ввод: # Вывод:
m 1 0.500
n 2
k 3

2.

Ввод: # Вывод:
m 2 0.66666666666666666667
n 3
k 20

3.

Ввод: # Вывод:
m 9 1.000000000
n 9
k 9

4.

Ввод: #
m 1 0.33333333333333333333
n 3
k 20

Здесь можно посмотреть решение на ideone.com

Здесь можно посмотреть  условие задачи на e-olymp.com

7 thoughts on “e-olymp 11. Большая точность

  1. — Деление (даже с двойной точностью) не позволит вычислить 1000 знаков после запятой. Мы это обсуждали на занятиях.
    — Нужны правильные отступы.
    — Что вы имеете в виду » Цикл for выполняет проверку для каждого из условий»?
    — Вы пишите с помощью чего выполняются действия. И на этом заканчиваете. Это ничего по сути не объясняет. Например, «с помощью мела преподаватель решил задачу». Всё? После прочтения этой фразы читатель знает как решать все задачи?
    — Что это за тесты? Сделайте хоть 1 3 20 и 2 3 20, тогда посмотрим.
    — «библиотека, дроби, точки, числа» — это Вы про деление уголком (столбиком) так думаете?

  2. Катя, Вы не исправляете все ошибки и мне приходится повторять.
    – Нужны правильные отступы. Если Вы не поняли, как их расставлять, посмотрите здесь на возможные варианты.
    — Тест про 1/6 содержит ошибку в последнем знаке. Последняя цифра должна быть на 1 больше, если отбрасываемая часть больше половины единицы последнего оставленного разряда.
    — Алгоритм деления в столбик описан очень путано. Я проверил на живых людях. Никто из испытуемых не понял о чём идёт речь. Может Вам стоит посмотреть или почитать как это объясняют другие? Понятно, что Вы сами понимаете, но нужно уметь изложить свою мысль. Только, пожалуйста, не копируйте чужие тексты — напишите хорошо сами.

  3. Лучше внимательно перечитать замечания и исправить их, чем ждать пока я проверю и скопирую старые замечания в новый комментарий.
    — – «Что это за тесты? Сделайте хоть 1 3 20 и 2 3 20, тогда посмотрим.» В ответ Вы 2 3 20 сделали, молодец. Теперь жду 1 3 20.
    — Если удалить бессмысленные тексты п.п. 1 и 2, то работа только выиграет. На мой взгляд.

Добавить комментарий