Игорь на уроках любит писать записки. Сегодня он написал записку на листочке размером x×y сантиметров. Чтобы учитель не заметил записку, он хочет сложить ее так, чтобы ее размер был не больше 1×1 сантиметр. Для этого он может складывать бумагу несколько раз, каждый раз он сгибает записку вдоль прямой, параллельной одной из сторон листка.
Помогите Игорю узнать, сколько раз ему нужно сложить лист бумаги, чтобы учительница его не заметила.
C/C++
Пожалуйста дайте точный код (решение задачи).
не больше 6, иначе толщина не даст сложить бумагу пополам.
Обратное решение
2*1
2*2
2*4
4*4
8*4
8*8
Если листок больше чем 8*8, сложить его в 1*1 нельзя
Обратное решение
2*1
2*2
2*4
4*4
8*4
8*8
Если листок больше чем 8*8, сложить его в 1*1 нельзя
n=ceil(log2(x))+ceil(log2(y));
Запиши это на своем любимом ЯП и адью.
Запиши это на своем любимом ЯП и адью.
# Вводим размеры листка бумаги в сантиметрах
x = int(input("Введите длину листка: "))
y = int(input("Введите ширину листка: "))
# Инициализируем счетчик количества сложений
count = 0
# Пока размеры листка больше 1 см, складываем его пополам
while x > 1 or y > 1:
# Если длина больше ширины, то складываем по длине
if x > y:
x = x // 2 # Делим длину на 2 и округляем вниз
# Иначе складываем по ширине
else:
y = y // 2 # Делим ширину на 2 и округляем вниз
# Увеличиваем счетчик на 1
count += 1
# Выводим результат
print("Игорю нужно сложить листок", count, "раз.")
x = int(input("Введите длину листка: "))
y = int(input("Введите ширину листка: "))
# Инициализируем счетчик количества сложений
count = 0
# Пока размеры листка больше 1 см, складываем его пополам
while x > 1 or y > 1:
# Если длина больше ширины, то складываем по длине
if x > y:
x = x // 2 # Делим длину на 2 и округляем вниз
# Иначе складываем по ширине
else:
y = y // 2 # Делим ширину на 2 и округляем вниз
# Увеличиваем счетчик на 1
count += 1
# Выводим результат
print("Игорю нужно сложить листок", count, "раз.")
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x, y;
cout << "Введите размеры листа в сантиметрах (x y): ";
cin >> x >> y;
int count = 0;
while (x > 1 || y > 1) {
if (x > y) {
x /= 2;
} else {
y /= 2;
}
count++;
}
cout << "Необходимо сложить лист " << count << " раз(а), чтобы размер был не больше 1x1 см." << endl;
return 0;
}
#include <cmath>
using namespace std;
int main() {
double x, y;
cout << "Введите размеры листа в сантиметрах (x y): ";
cin >> x >> y;
int count = 0;
while (x > 1 || y > 1) {
if (x > y) {
x /= 2;
} else {
y /= 2;
}
count++;
}
cout << "Необходимо сложить лист " << count << " раз(а), чтобы размер был не больше 1x1 см." << endl;
return 0;
}
Похожие вопросы
- Написать код для задачи C++
- Помогите с решением задачи на языке СИ
- Написать код для задачи на C++
- Основы программирования. Решение задач. Обработка структур. Программа.
- Тренажеры по решению задач С++.
- Помогите, пожалуйста, срочно. Прокомментировать код на Си
- Переделайте код для задачи в С++
- Решение задач по с++
- Помогите с решением задачи в С++.
- Помогите с решением задачи С++