Размеры всех прямоугольников - C (СИ)
Формулировка задачи:
Найти размеры всех прямоугольников, площадь которых задано натуральным числом s и стороны которых выражены натуральными числами. При этом решения, которые получаются перестановкой размеров сторон считать совпадающими.
Решение задачи: «Размеры всех прямоугольников»
textual
Листинг программы
#include <iostream> using namespace std; int main(){ int s; int *M;// Множители без перевертышей int count = 0;// Число множителей с дубликатами cout << "s = "; cin >> s; if(s<=0) { cout << "Error s <= 0 \n"; return 1; } // Вычисляем кол-во всех множителей с дубликатами for (int i = 1; i <= s; ++i) if (s%i == 0) count++; M = new int [count];// Выделяем память int count1 = count;// Дополнительный счетчик int k = 0; for (int i = 1; count1 > count/2; ++i) if (s%i == 0) { M[k] = i; M[k+1] = s/i; k = k + 2; count1--; } for(int i = 0; i < count; i = i + 2) cout << M[i] << " " << M[i+1] << endl; delete [] M; return 0; }
Объяснение кода листинга программы
- В начале программы подключается стандартная библиотека ввода-вывода.
- В главной функции программы объявляются следующие переменные: s — для хранения числа прямоугольников; M — для хранения множеств множителей без перевертышей; count — для хранения количества множителей с дубликатами.
- Выводится запрос на ввод числа прямоугольников.
- Если число прямоугольников меньше или равно нулю, то выводится сообщение об ошибке и программа завершается.
- Считается общее количество множителей с дубликатами.
- Выделяется память под массив множителей с дубликатами.
- Дополнительный счётчик count1 отслеживает количество ещё не использованных множителей.
- Заполняются массивы множеств множителей и их периодов на основе найденных множителей числа s.
- Выводятся на экран массивы множеств множителей и их периодов.
- Освобождается память, выделенная под массив множителей с дубликатами.
- Программа завершается с кодом 0, то есть успешно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д