Размеры всех прямоугольников - 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;   
}

Объяснение кода листинга программы

  1. В начале программы подключается стандартная библиотека ввода-вывода.
  2. В главной функции программы объявляются следующие переменные: s — для хранения числа прямоугольников; M — для хранения множеств множителей без перевертышей; count — для хранения количества множителей с дубликатами.
  3. Выводится запрос на ввод числа прямоугольников.
  4. Если число прямоугольников меньше или равно нулю, то выводится сообщение об ошибке и программа завершается.
  5. Считается общее количество множителей с дубликатами.
  6. Выделяется память под массив множителей с дубликатами.
  7. Дополнительный счётчик count1 отслеживает количество ещё не использованных множителей.
  8. Заполняются массивы множеств множителей и их периодов на основе найденных множителей числа s.
  9. Выводятся на экран массивы множеств множителей и их периодов.
  10. Освобождается память, выделенная под массив множителей с дубликатами.
  11. Программа завершается с кодом 0, то есть успешно.

ИИ поможет Вам:


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

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы