Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Свидетельство о публикации

Автоматическая выдача свидетельства о публикации в официальном СМИ сразу после добавления материала на сайт - Бесплатно

Добавить свой материал

За каждый опубликованный материал Вы получите бесплатное свидетельство о публикации от проекта «Инфоурок»

(Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01.2015)

Инфоурок / Информатика / Статьи / Статья на тему "Подготовка к олимпиадам по информатике: Циклы. Часть 3"
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 28 июня.

Подать заявку на курс
  • Информатика

Статья на тему "Подготовка к олимпиадам по информатике: Циклы. Часть 3"

библиотека
материалов

Циклы. Задачи на цикл while


Задача A. Список квадратов

Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N.

Формат входных данных

Задано единственное число N.

Формат выходных данных

Необходимо вывести все точные квадраты натуральных чисел, не превосходящие данного числа N.


Пример


Задача B. Минимальный делитель

Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.


Пример


Задача C. Список степеней двойки

По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания.

Операцией возведения в степень пользоваться нельзя!


Примеры


Задача D. Точная степень двойки

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.

Операцией возведения в степень пользоваться нельзя!


Примеры


Задача E. Двоичный логарифм

По данному натуральному числу N выведите такое наименьшее целое число k, что 2kN.

Операцией возведения в степень пользоваться нельзя!


Примеры


Задача F. Утренняя пробежка

В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.

Программа получает на вход действительные числа x и y и должна вывести одно натуральное число.


Примеры


10

20

9


Задача G. Банковские проценты

Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Каждый год сумма вклада становится больше. Определите, через сколько лет вклад составит не менее y рублей.

Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число.


Примеры


100

10

200

8



Задача H. Числа Фибоначчи

Последовательность Фибоначчи определяется так:

φ0=0, φ1=1, ..., φnn-1n-2.

По данному числу n определите n-е число Фибоначчи φn.


Примеры


Задача I. Номер числа Фибоначчи

Дано натуральное число A > 1. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что φn=A. Если А не является числом Фибоначчи, выведите число -1.


Примеры


Задача J. Исполнитель Раздвоитель

Исполнитель “Раздвоитель” преобразует натуральные числа. У него есть две команды: “Вычесть 1” и “Разделить на 2”, первая команда уменьшает число на 1, вторая команда уменьшает число в два раза, если оно чётное, иначе происходит ошибка.

Дано два натуральных числа A и B (A>B). Напишите алгоритм для Развоителя, который преобразует число A в число B и при этом содержит минимальное число команд. Команды алгоритма нужно выводить по одной в строке, первая команда обозначается, как -1, вторая команда как :2.


Примеры


179

20

-1

:2

-1

:2

:2

-1

-1


Задача K. Исполнитель Водолей

У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции:

Наполнить сосуд A (обозначается >A).

Наполнить сосуд B (обозначается >B).

Вылить воду из сосуда A (обозначается A>).

Вылить воду из сосуда B (обозначается B>).

Перелить воду из сосуда A в сосуд B (обозначается как A>B).

Перелить воду из сосуда B в сосуд A (обозначается как B>A).

Команда переливания из одного сосуда в другой приводят к тому, что либо первый сосуд полностью опустошается, либо второй сосуд полность наполняется.

Программа получает на вход три натуральных числа A, B, N, не превосходящих 104 Вам необходимо вывести алгоритм действий Водолея, который позволяет получить в точности N литров в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible.

Количество операций в алгоритме не должно превышать 105. Гарантируется, что если задача имеет решение, то есть решение, которое содержит не более, чем 105 операций.


Примеры


3

5

1

>A

A>B

>A

A>B

3

5

100

Impossible



Задача A. Список квадратов

var n,i:integer;

begin

read(n);

i:=1;

while i<=n do

begin

if sqrt(i)=int(sqrt(i)) then

write(i,' ');

i:=i+1;

end;

end.


var n,i:integer;

begin

read(n);

i:=1;

while i<=sqrt(n) do

begin

write(i*i,' ');

i:=i+1;

end;

end.


Задача B. Минимальный делитель

var n,i:integer;

begin

read(n);

i:=2;

while (i<=n) and (n mod i<>0) do

i:=i+1;

write(i);

end.


Задача C. Список степеней двойки

var n,i:integer;

begin

read(n);

i:=1;

while i<=n do

begin

write(i,' ');

i:=i*2;

end;

end.


Задача D. Точная степень двойки

var n,i:integer;

begin

read(n);

i:=1;

while (i<=n) do

i:=i*2;

if i div 2=n then write('YES')

else write('NO');

end.


Задача E. Двоичный логарифм

var n,i,k:longint;

begin

read(n);

i:=1;

k:=0;

while i

begin

i:=i*2;

k:=k+1;

end;

write(k);

end.


Задача F. Утренняя пробежка

var x,y,i:real;

k:integer;

begin

read(x,y);

k:=1;

i:=x;

while i

begin

i:=i+0.1*i;

k:=k+1;

end;

write(k);

end.


Задача G. Банковские проценты

var x,y,i,p:real;

k:integer;

begin

read(x,p,y);

k:=0;

i:=x;

while i

begin

i:=i+int(p*i)/100;

k:=k+1;

end;

write(k);

end.


Задача H. Числа Фибоначчи

var n,i,f0,f1,f:longint;

begin

read(n);

f0:=0;

f1:=1;

i:=2;

if n<2 then write(n)

else

begin

while i<=n do

begin

f:=f0+f1;

f0:=f1;

f1:=f;

i:=i+1

end;

write(f);

end

end.

Задача I. Номер числа Фибоначчи

var n,f0,f1,f,a:longint;

begin

read(a);

f0:=0;

f1:=1;

n:=0;

while f<=a do

begin

f:=f0+f1;

f0:=f1;

f1:=f;

n:=n+1

end;

if f0=a then write(n)

else write(-1);

end.


Задача J. Исполнитель Раздвоитель

var a,b:longint;

begin

read(a,b);

while b

if a>=2*b then

begin

if a mod 2=0 then

begin

a:=a div 2;

writeln(':2');

end

else

begin

a:=a-1;

writeln('-1');

end;

end

else

begin

a:=a-1;

writeln('-1');

end;

end.


Задача K. Исполнитель Водолей

const

LIMIT=100000;

var

a,b,n:longint;

min,max:char;

reall:boolean;

bV,aV,k:longint;

begin

read(a,b,n);

min:='A';

max:='B';

reall:=false;

if a>b then

begin

min:='B';

max:='A';

a:=a+b;

b:=a-b;

a:=a-b;

end;

aV:=0;

bV:=0;

k:=0;

while k<=LIMIT do

begin

inc(k,2);

if (b - bV >= a)

then inc(bV,a)

else

begin

bV:= a - (b - bV);

inc(k,2);

end;

if (n = bV) then

begin

reall := true;

break;

end;

end;

if reall then

begin

bV:=0;

while true do

begin

writeln('>',min);

writeln(min,'>',max);

if b-bV>=a then inc(bV,a)

else

begin

bV := a-(b - bV);

writeln(max,'>');

writeln(min,'>',max);

end;

if (n = bV) then break;

end;

end

else

writeln('Impossible');

end.




Подайте заявку сейчас на любой интересующий Вас курс переподготовки, чтобы получить диплом со скидкой 50% уже осенью 2017 года.


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Автор
Дата добавления 31.05.2016
Раздел Информатика
Подраздел Статьи
Просмотров924
Номер материала ДБ-104736
Получить свидетельство о публикации
Похожие материалы

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Специальное предложение
Вверх