Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
736
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

числа хорошего приближения в виде дроби со сравнительно небольшим знаменателем. Примером может служить задача расчета зубчатой передачи, состоящей из двух шестерен. Передаточное число должно быть близко к заданному значению, и при этом число зубьев каждой из шестерен не может превышать некоторой указанной границы. Для решения такого рода задач полезны следующие соотношения для числителей и знаменателей подходящих дробей: p1=1; p2 = b2; pn = bnpn-1+ pn-2, n = 3, 4, ..., k –1

q1=b1; q2 = b1b2+1; qn = bnqn-1+qn-2, n = 3, 4, … k – 1 *).

*) Доказательство этих соотношений и свойств 1), 2) можно найти, например, в книге [50].

Написать программы выполнения следующих заданий. Даны натуральные s, t (s < t)

а) Получить все подходящие дроби числа s/t (указать их числители и знаменатели).

б) Считая, что дополнительно дано натуральное k, выяснить, существуют ли такие подходящие дроби числа s/t, числители и знаменатели которых меньше k. Если такие подходящие дроби существуют, то построить последнюю по порядку (указать ее числитель и знаменатель), а также указать модуль разности числа r/s и найденной подходящей дроби.

576. Даны натуральные числа a1,…, a10. Предположим, что имеются 10 гирь весом a1,…, a10. Обозначим через ck число способов, которыми можно составить вес k, т.е. ck – это число решений уравнения a1x1+…+a10x10 = k, где xi может принимать значение 0 или 1 (i = 1,…, 10). Получить c0,…, c10.

577. Даны натуральные числа a1,…, a10. Предположим, что имеются 10 видов монет достоинством a1,…, a10. Обозначим через bk число способов, которыми можно выплатить сумму k, т.е. bk –это число

решений уравнения a1x1+…+a10x10 = k, где xi может принимать целые неотрицательные значения. Получить b0,…, b20.

578. Дано натуральное число n. Как наименьшим количеством монет можно выплатить n копеек? Предполагается, что в достаточно большом количестве имеются монеты достоинством в 1, 2, 3, 5, 10, 15, 20 и 50 коп.

579. Дано натуральное число n (n ≥ 5). Получить все пятерки натуральных чисел x1, x2, x3, x4, x5 такие, что x1x2x3x4x5 и x1+…+ x5 = n.

580. Дано натуральное число n (n ≤ 99). Получить все способы выплаты суммы n с помощью монет достоинством 1, 5, 10 и 20 коп.

§ 16. Системы счисления

581.Получить последовательность dk, dk-1, …,d0 десятичных цифр числа 2200, т.е. такую целочисленную последовательность, в

которой каждый член di удовлетворяет условию 0 di 9 и, дополнительно, dk.10k + dk-1.10k-1+ … + d0=2200.

582. Получить последовательность d-1, d-2, …, d-k десятичных цифр числа 2-200, т.е. такую целочисленную последовательность, в

которой каждый член di удовлетворяет условию 0 di 9 и, дополнительно, d-1.10-1 + d-2.10-2+ … + d-k.10-k =2-200.

583. Получить последовательность dk, dk-1, …, d0 десятичных цифр числа 100!, т.е. такую целочисленную последовательность, в

которой каждый член di удовлетворяет условию 0 di 9 и,

дополнительно, dk.10k + dk-1.10k-1+ … + d0=100!.

584. Получить последовательность dk, dk-1, …, d0 десятичных цифр числа:

a)100!+2100;

b)100!–2100,

т.е. получить такую целочисленную последовательность, в которой каждый член di удовлетворяет условию 0 di 9 и, дополнительно,

dk.10k + dk-1.10k-1+ … + d0

равно 100!+2100 или соответственно 100!–2100.

585. Дано натуральное число p. Получить двоичное

представление числа p в виде последовательности a0,…, an нулей и

единиц такой, что p = a

n

2n + ... + a 2 +

a

0

(an0).

 

1

 

 

586. Даны натуральные числа p и q (q

2). Получить q-ичное

представление числа p в виде такой последовательности a0,…, an целых неотрицательных чисел что ai < q (i=0,…, n) и p=an qn+…+ a1 q+a0

(an0)

587. Даны действительное число x и натуральное число q (0x

<1, q2). Получить пять цифр q-ичного представления числа x, т.е. получить последовательность целых неотрицательных a-1,…, a-5 такую,

что x=a-1 q-1+…+ a-5 q-5+r, 0 ai q 1, r < q-5.

588. Дано натуральное число p. Получить последовательность a0,…an , каждый член которой равен –1, 0 или 1, такую что

p = an 3n + ... + a1 3 + a0 (an0).

589. Даны натуральное число n, целые числа a0,…, an , такие,

что каждое ai равно нулю или единице и an0. Последовательность a0,…, an задает двоичное представление некоторого целого числа p = an 2n + ... + a1 2 + a0 . Получить последовательность нулей и единиц, задающую двоичное представление:

a)числа p+1;

b)числа p–1;

c) числа 3p.

590. Получить все меньшие 106 натуральные числа, которые являются палиндромами (см. задачу 563) как в десятичной так и в двоичной системах.

591. Дано натуральное число m. Найти такое натуральное n, что двоичная запись n получается из двоичной записи m изменением порядка цифр на обратный (m задано в десятичной системе, и n надо также получить в десятичной системе, например, для m=6 получается n=3).

592. Дано натуральное число n. Требуется получить последовательность, которая состоит из нулей и семерок и образует десятичную запись некоторого натурального числа, делящегося на n.

(Воспользоваться тем, что в числовой последовательности 7, 77, 777, … обязательно найдутся два члена, дающие при делении на n один и тот же остаток.)

593. Дано натуральное число m (m<27). Получить все трехзначные натуральные числа, сумма цифр которых равна m.

594. Получить все шестизначные счастливые номера. (Про целое число n, удовлетворяющее условию 0n 999999, говорят, что оно представляет собой счастливый номер, если сумма трех его первых цифр равна сумме трех его последних цифр; если в числе меньше шести цифр, то недостающие начальные цифры считаются нулями ).

595. Даны взаимно простые натуральные числа p, q (p<q). Найти периодическую и непериодическую части (две последовательности однозначных неотрицательных чисел, разделенных числом –1) десятичной дроби, равной p/q.

596. Получить все четырехзначные числа в записи которых нет двух одинаковых цифр.

597. Даны натуральные числа n, m, неотрицательные целые числа am, am-1,…, a0 такие, что am am-1a0 – запись n в некоторой

системе счисления (среди am, am-1,…, a0 могут быть и числа, большие девяти, – это будет означать, что основание системы счисления заведомо больше десяти). Требуется определить основание использованной системы счисления.

598. Даны натуральное число n, действительные числа a1,…, an (ai ≠ 0, i=1,…, n). Знаки чисел в каждой из троек ai, ai+1, ai+2 (i=1,…, n–2) могут образовать одну из следующих комбинаций: + + +, + + –, + – +, + – –, – + +, – + –, – – +, – – –. Получить целые b0,…,b7, равные количествам вхождений в последовательность a1,…, an указанных троек ai, ai+1, ai+2, с той или иной комбинацией знаков.

599. В последовательности действительных чисел a0, a1,…, a10

выбрать последовательность ai1 , ai2 , ..., aik (0≤ i1< i2<…< ik≤ 10), для которой значение sin( ai1 + ai2 + ... + aik ) является наибольшим. (Перебрать все подпоследовательности данной последовательности

путем рассмотрения всех последовательностей b0, b1,…, b10 из нулей и единиц: ai входит в подпоследовательность, если bi=1. Использовать решение задачи 589а.)

600. Дано натуральное число n; представить его в двоичнодесятичной системе счисления. Последнее означает, что надо получить последовательность двоичных цифр – нулей и единиц; при этом первые четыре двоичные цифры дают запись (в виде двоичного числа) первой (старшей) десятичной цифры числа n, следующие четыре двоичные цифры – запись второй десятичной цифры числа n и т.д. Таким образом, общее число двоичных цифр должно делиться на четыре. Примеры: если n =93, то двоично-десятичная запись n есть 10010011; если n=607, то – 011000000111 и т.д.

601. Даны натуральное число m, двоичные цифры b1,…, b4m . Рассматривая последовательность b1,…, b4m как запись некоторого