- Решение задач на С++
- понедельник, 14 марта 2011 г.
- Операторы цикла
- Вывести квадраты натуральных чисел не превосходящие заданное число
- Распечатать все целые степени двойки, не превосходящие заданного n
- По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания. Форма
- Вывести степени натуральных чисел не превосходящие данного числа n
Решение задач на С++
понедельник, 14 марта 2011 г.
Операторы цикла
Цикл While. Блок 1. Задачи на цикл While.
Задача A. Список квадратов
Выведите все точные квадраты натуральных чисел, не превосходящие данного числа N.
- int n;
- cin>>n;
- int value = 1;
- int curSqr = value * value ;
- while (curSqr ‘ ‘ ;
- value ++;
- curSqr = value * value ;
- >
* This source code was highlighted with Source Code Highlighter .
Задача B. Минимальный делитель
Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
- int n;
- cin >> n;
- int i = 2, min_den = 1;
- int sqrt_n = sqrt(( double )n);
- while (i if (n % i == 0)
- <
- min_den = i;
- break ;
- >
- i++;
- >
- if (min_den == 1)
- cout else
- cout * This source code was highlighted with Source Code Highlighter .
Задача C. Список степеней двойки
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания. Операцией возведения в степень пользоваться нельзя!
Той же самой цели можно добиться, заменив явное умножение на 2 побитовым сдвигом.
Вариант 2.
Задача D. Точная степень двойки
Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя!
- int n;
- cin>>n;
- int bitAmount = 0;
- while (n) <
- bitAmount += n % 2;
- n /= 2;
- >
- if (bitAmount == 1)
- cout «YES» ;
- else
- cout «NO» ;
* This source code was highlighted with Source Code Highlighter .
Задача E. Двоичный логарифм
По данному натуральному числу N выведите такое наименьшее целое число k, что 2 k ≥N.
Операцией возведения в степень пользоваться нельзя!
- int n;
- cin >> n;
- int pow2 = 1, k = 0;
- while (pow2 * This source code was highlighted with Source Code Highlighter .
Задача F. Утренняя пробежка
В первый день спортсмен пробежал x километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров.
Программа получает на вход действительные числа x и y и должна вывести одно натуральное число.
Задача G. Банковские проценты
Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Каждый год сумма вклада становится больше. Определите, через сколько лет вклад составит не менее y рублей.
Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число.
- int n, i = 2, f1 = 0, f2 = 1, cur;
- cin >> n;
- while (i if (n else
- cout * This source code was highlighted with Source Code Highlighter .
Задача I. Номер числа Фибоначчи
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что φn=A. Если А не является числом Фибоначчи, выведите число -1.
- int a, i = 1, f1 = 0, f2 = 1, cur = 1;
- cin >> a;
- while (cur if (cur == a)
- cout else
- cout * This source code was highlighted with Source Code Highlighter .
Задача J. Исполнитель Раздвоитель
Исполнитель “Раздвоитель” преобразует натуральные числа. У него есть две команды: “Вычесть 1” и “Разделить на 2”, первая команда уменьшает число на 1, вторая команда уменьшает число в два раза, если оно чётное, иначе происходит ошибка.
Дано два натуральных числа A и B (A>B). Напишите алгоритм для Раздвоителя, который преобразует число A в число B и при этом содержит минимальное число команд. Команды алгоритма нужно выводить по одной в строке, первая команда обозначается, как -1, вторая команда как :2.
Задача K. Исполнитель Водолей
У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции:
Наполнить сосуд A (обозначается >A).
Наполнить сосуд B (обозначается >B).
Вылить воду из сосуда A (обозначается A>).
Вылить воду из сосуда B (обозначается B>).
Перелить воду из сосуда A в сосуд B (обозначается как A>B).
Перелить воду из сосуда B в сосуд A (обозначается как B>A).
Команда переливания из одного сосуда в другой приводят к тому, что либо первый сосуд полностью опустошается, либо второй сосуд полностью наполняется.
Программа получает на вход три натуральных числа A, B, N, не превосходящих 10 4 Вам необходимо вывести алгоритм действий Водолея, который позволяет получить в точности N литров в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible. Количество операций в алгоритме не должно превышать 10 5 . Гарантируется, что если задача имеет решение, то есть решение, которое содержит не более, чем 10 5 операций.
- const int LIMIT = 1e5 + 10;
- int a, b, n;
- cin >> a >> b >> n;
- char min = ‘A’ , max = ‘B’ ;
- bool real = false ;
- if (b int bV = 0, aV = 0;
- int k = 0;
- do
- <
- k++; /*printf(«>%c\n»,min);*/
- k++; /*printf(«%c>%c\n», min, max);*/
- if (b — bV >= a)
- bV += a;
- else
- <
- bV = a — (b — bV);
- k++; /*printf(«%c>\n»,max);*/
- k++; /*printf(«%c>%c\n», min, max);*/
- >
- if (n == bV)
- <
- real = true ;
- break ;
- >
- >
- while (k if (real)
- <
- bV = 0;
- do
- <
- printf( «>%c\n» ,min);
- printf( «%c>%c\n» , min, max);
- if (b — bV >= a)
- bV += a;
- else
- <
- bV = a — (b — bV);
- printf( «%c>\n» ,max);
- printf( «%c>%c\n» , min, max);
- >
- if (n == bV)
- break ;
- >
- while ( true );
- >
- else
- cout «Impossible» ;
* This source code was highlighted with Source Code Highlighter .
Источник
Вывести квадраты натуральных чисел не превосходящие заданное число
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вывести все точные квадраты натуральных чисел, не превосходящие данного числа N
Народ, помогите пожалуйста!. Вот задача: Выведите все точные квадраты натуральных чисел, не.
Вывести все совершенные числа не превосходящие заданное число
Дано натуральное число P. Вывести все совершённые числа не превосходящие P. Необходимо.
Вывести все простые числа, не превосходящие заданное число M
Вывести все простые числа, не превосходящие заданное число M.
Вывести квадраты натуральных чисел в заданном диапазоне
Квадрат любого натурального числа п равен сумме n первых нечетных чисел 1^2=1 2^2=1+3 3^2=1+3+5.
Вывести квадраты натуральных чисел, которые меньше указаного числа
вывести квадраты натуральных чисел, которые меньше за указаное число
Вычислить количество натуральных чисел кратных пяти и не превышающих заданное число
Нужно написать программу в С++,помогите кому не сложно Дано целое положительное число N.
Вычислить количество натуральных чисел, кратных трем и не превышающих заданное число
1. Дано целое положительное число N. Вычислить количество натуральных чисел, кратных трем и не.
Источник
Распечатать все целые степени двойки, не превосходящие заданного n
Задача с сайта stepik.org
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания.
Формат входных данных
Вводится натуральное число.
Формат выходных данных
Выведите ответ на задачу.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Найти все натуральные числа, не превосходящие заданного n
найти все натуральные числа, не превосходящие заданного n и делящиеся на каждую из своих цифр
Перечислить все натуральные числа, не превосходящие заданного N
Перечислить все натуральные числа, не превосходящие заданного N, в двоичном представлении которых.
Найти все натуральные числа не превосходящие заданного
Найти все натуральные числа ,не превосходящие заданного m,сумма цифр в десятичном представлении.
Найти все простые числа, не превосходящие заданного N >0
Найти все простые числа, не превосходящие заданного N >0 с циклом
Источник
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания. Форма
По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
Формат входных данных
Вводится натуральное число.
Формат выходных данных
Выведите ответ на задачу.
50
Sample Output:
1 4 9 16 25 36 49
Помощь в написании контрольных, курсовых и дипломных работ здесь.
По данному числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
Условие По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N.
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания.
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания
По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке.
Вывести все точные квадраты натуральных чисел, не превосходящие числа n
Народ, может кто помочь с заданиями? Очень нужно. Спасибо тем, кто откликнится. 1.Дано натуральное.
Источник
Вывести степени натуральных чисел не превосходящие данного числа n
Copy raw contents
Copy raw contents
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
# task1———————————————————— |
«»» |
По данному целому числу N распечатайте все квадраты натуральных чисел, |
не превосходящие N, в порядке возрастания. |
«»» |
n = int ( input ()) |
i = 1 |
while i ** 2 n : |
print ( i ** 2 ) |
i += 1 |
# —————————————————————— |
# task2———————————————————— |
«»» |
Дано целое число, не меньшее 2. |
Выведите его наименьший натуральный делитель, отличный от 1. |
«»» |
n = int ( input ()) |
i = 2 |
while n % i != 0 : |
i += 1 |
print ( i ) |
# —————————————————————— |
# task3———————————————————— |
«»» |
По данному натуральному числу N найдите наибольшую целую степень двойки, |
не превосходящую N. Выведите показатель степени и саму степень. |
Операцией возведения в степень пользоваться нельзя! |
«»» |
n = int ( input ()) |
p_of_two = 2 |
p = 1 |
while p_of_two n : |
p_of_two *= 2 |
p += 1 |
print ( p — 1 , p_of_two // 2 ) |
# —————————————————————— |
# task4———————————————————— |
«»» |
В первый день спортсмен пробежал x километров, |
а затем он каждый день увеличивал пробег на 10% от предыдущего значения. |
По данному числу y определите номер дня, на который пробег спортсмена составит не менее y километров. |
Программа получает на вход действительные числа x и y и должна вывести одно натуральное число. |
«»» |
x = int ( input ()) |
y = int ( input ()) |
i = 1 |
while x y : |
x *= 1.1 |
i += 1 |
print ( i ) |
# —————————————————————— |
# task5———————————————————— |
«»» |
Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов, |
после чего дробная часть копеек отбрасывается. |
Определите, через сколько лет вклад составит не менее y рублей. |
Выражение «дробная часть копеек отбрасывается» означает, |
что если у вас оказалось 123.4567 рублей, т. е. 123 рубля и 45.67 копеек, |
то после округления у вас получится 123 рубля и 45 копеек, т.е. 123.45 рублей. |
Программа получает на вход три натуральных числа: x, p, y и должна вывести одно целое число. |
«»» |
x = float ( input ()) |
p = int ( input ()) |
y = int ( input ()) |
i = 0 |
while x y : |
x = x + x * p / 100 |
x = float ( int ( x * 100 )) / 100 |
i += 1 |
print ( i ) |
# —————————————————————— |
# task6———————————————————— |
«»» |
Программа получает на вход последовательность целых неотрицательных чисел, |
каждое число записано в отдельной строке. Последовательность завершается числом 0, |
при считывании которого программа должна закончить свою работу и вывести количество членов последовательности |
(не считая завершающего числа 0). Числа, следующие за числом 0, считывать не нужно. |
«»» |
n = 1 |
i = 0 |
while n != 0 : |
n = int ( input ()) |
i += 1 |
print ( i — 1 ) |
# —————————————————————— |
# task7———————————————————— |
«»» |
Определите сумму всех элементов последовательности, завершающейся числом 0. |
В этой и во всех следующих задачах числа, следующие за первым нулем, учитывать не нужно. |
«»» |
n = 1 |
s = 0 |
while n != 0 : |
n = int ( input ()) |
s += n |
print ( s ) |
# —————————————————————— |
# task8———————————————————— |
«»» |
Определите среднее значение всех элементов последовательности, завершающейся числом 0. |
«»» |
sum = len = 0 |
el = int ( input ()) |
while el != 0 : |
sum += el |
len += 1 |
el = int ( input ()) |
print ( sum / len ) |
# —————————————————————— |
# task9———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите значение наибольшего элемента последовательности. |
«»» |
max = 0 |
el = — 1 |
while el != 0 : |
el = int ( input ()) |
if el > max : |
max = el |
print ( max ) |
# —————————————————————— |
# task10———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите индекс наибольшего элемента последовательности. |
Если наибольших элементов несколько, выведите индекс первого из них. |
Нумерация элементов начинается с нуля. |
«»» |
i = 1 |
max_i = 1 |
max_n = 0 |
n = 1 |
while n != 0 : |
n = int ( input ()) |
if n > max_n : |
max_i = i |
max_n = n |
i += 1 |
print ( max_i ) |
# —————————————————————— |
# task11———————————————————— |
«»» |
Определите количество четных элементов в последовательности, завершающейся числом 0. |
«»» |
n = — 1 |
el = — 1 |
while el != 0 : |
el = int ( input ()) |
if el % 2 == 0 : |
n += 1 |
print ( n ) |
# —————————————————————— |
# task12———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите, сколько элементов этой последовательности больше предыдущего элемента. |
«»» |
p = int ( input ()) |
ans = 0 |
while p != 0 : |
num = int ( input ()) |
if num != 0 and p num : |
ans += 1 |
p = num |
print ( ans ) |
# —————————————————————— |
# task13———————————————————— |
«»» |
Последовательность состоит из различных натуральных чисел и завершается числом 0. |
Определите значение второго по величине элемента в этой последовательности. |
Гарантируется, что в последовательности есть хотя бы два элемента. |
«»» |
f_max = int ( input ()) |
s_max = int ( input ()) |
if f_max s_max : |
f_max , s_max = s_max , f_max |
el = int ( input ()) |
while el != 0 : |
if el > f_max : |
s_max , f_max = f_max , el |
elif el > s_max : |
s_max = el |
el = int ( input ()) |
print ( s_max ) |
# —————————————————————— |
# task14———————————————————— |
«»» |
Последовательность состоит из натуральных чисел и завершается числом 0. |
Определите, сколько элементов этой последовательности равны ее наибольшему элементу. |
«»» |
max = 0 |
i_max = 0 |
el = — 1 |
while el != 0 : |
el = int ( input ()) |
if el > max : |
max , i_max = el , 1 |
elif el == max : |
i_max += 1 |
print ( i_max ) |
# —————————————————————— |
# task15———————————————————— |
«»» |
Последовательность Фибоначчи определяется так: |
φ0 = 0, φ1 = 1, φn = φn−1 + φn−2. |
По данному числу n определите n-е число Фибоначчи φn. |
Эту задачу можно решать и циклом for. |
«»» |
n = int ( input ()) |
if n == 0 : |
print ( 0 ) |
else : |
a , b = 0 , 1 |
for i in range ( 2 , n + 1 ): |
a , b = b , a + b |
print ( b ) |
# —————————————————————— |
# task16———————————————————— |
«»» |
Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, |
то есть выведите такое число n, что φn = A. Если А не является числом Фибоначчи, выведите число -1. |
«»» |
a = int ( input ()) |
if a == 0 : |
print ( 0 ) |
else : |
prev , next = 0 , 1 |
n = 1 |
while next a : |
if next == a : |
print ( n ) |
break |
prev , next = next , prev + next |
n += 1 |
else : |
print ( — 1 ) |
# —————————————————————— |
# task17———————————————————— |
«»» |
Дана последовательность натуральных чисел, завершающаяся числом 0. |
Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу. |
«»» |
result = 1 |
seq = 0 |
prev = 0 |
cur_seq = 0 |
number = int ( input ()) |
while number > 0 : |
if prev == number : |
cur_seq += 1 |
else : |
cur_seq = 1 |
if cur_seq != 1 and cur_seq > result : |
result = cur_seq |
prev = number |
number = int ( input ()) |
print ( result ) |
# —————————————————————— |
# task18———————————————————— |
«»» |
Определите стандартное отклонение для данной последовательности натуральных чисел, завершающейся числом 0. |
«»» |
sum_num = 0 |
sum_power = 0 |
n = — 1 |
number = 1 |
while number != 0 : |
number = int ( input ()) |
sum_num += number |
sum_power += number ** 2 |
n += 1 |
result = (( sum_power — sum_num ** 2 / n ) / ( n — 1 )) ** 0.5 |
print ( result ) |
# —————————————————————— |
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Источник