Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
4.1 kB
1
Indexable
Never
#include <iostream>
#include <conio.h>
#include <string>
#include <cmath>

using namespace std;

void AreaAndPerimetr();
void FibbonachiAndFactorial();
void SimpleAndNOD();
void BinaryConverter();

int Area(int, int);
int Perimetr(int, int);
void DrawRectangle(int, int, char);
void Fibbonacci(int);
long long Factorial(int);
string Prime(int);
int FindNOD(int, int);
string ConvertToBinary(long long);

int main()
{
	setlocale(LC_ALL, "rus");
    cout << "Введите 1 для первого задания, 2 для второго, 3 для третьего и любой другой символ для 4\n";

    switch (_getch())
    {
    case '1':
        AreaAndPerimetr();
        break;
    case '2':
        FibbonachiAndFactorial();
        break;
    case '3':
        SimpleAndNOD();
        break;
    default:
        BinaryConverter();
        break;
    }
}

void AreaAndPerimetr()
{
	int length, width;

	cout << "Введите длину прямоугольника" << endl;
	cin >> length;

	cout << "Введите ширину прямоугольника" << endl;
	cin >> width;

    cout << "Площадь заданного прямоугольника = " << Area(length, width) << endl
        << "Периметр заданного прямоугольника =" << Perimetr(length, width) << endl;

    char symbol;

    cout << "Введите символ которым будет нарисован прямоугольник " << endl;
    cin >> symbol;

    DrawRectangle(length, width, symbol);
}

void FibbonachiAndFactorial()
{
    int number;
    cout << "Введите число ";
    cin >> number;

    Fibbonacci(number);

    cout << "Факториал - " << Factorial(number);
}

void SimpleAndNOD()
{
    int firstNumber, secondNumber;

    cout << "Введите 2 числа ";
    cin >> firstNumber >> secondNumber;

    cout << "первое число - " << Prime(firstNumber) << endl;
    cout << "второе число - " << Prime(secondNumber) << endl;

    cout << "Нод - " << FindNOD(firstNumber, secondNumber);
}

void BinaryConverter()
{
    long long number;

    cout << "введите число ";
    cin >> number;

    cout << ConvertToBinary(number);
}

int Area(int length, int width)
{
    int area = length * width;
    return area;
}

int Perimetr(int length, int width)
{
    int perimetr = 2 * (length + width);
    return perimetr;
}

void DrawRectangle(int length, int width, char symbol)
{
    for (int i = 0; i < length; i++)
    {
        for (int j = 0; j < width; j++)
        {
            cout << symbol;
        }
        cout << endl;
    }
}

void Fibbonacci(int number)
{
    int fibbonacci, firstNumberFibonacci = 1, secondNumberFibonacci = 0;

    for (int i = 1; i <= number; i++)
    {
        fibbonacci = firstNumberFibonacci + secondNumberFibonacci;
        firstNumberFibonacci = secondNumberFibonacci;
        secondNumberFibonacci = fibbonacci;
        cout << fibbonacci << " ";
    }

    cout << endl;
}

long long Factorial(int number)
{
    long long factorial = 1;
    for (int i = 1; i <= number; i++)
    {
        factorial *= i;
    }

    return factorial;
}

string Prime(int number)
{
    for (int i = 2; i <= sqrt(number); i++)
    {
        if (number % i == 0)
        {
            return " не является простым числом";
        }
    }

    return "простое число";
}
int FindNOD(int firstNumber, int secondNumber)
{
    while (firstNumber != secondNumber)
    {
        if (firstNumber > secondNumber)
        {
            firstNumber = firstNumber - secondNumber;
        }
        else
        {
            secondNumber = secondNumber - firstNumber;
        }
    }

    return firstNumber;
}

string ConvertToBinary(long long number)
{
    string convertedNumberToBinary = "";
    while (number > 0) {
        convertedNumberToBinary += char(number % 2 + 48);
        number /= 2;
    }
    reverse(convertedNumberToBinary.begin(), convertedNumberToBinary.end());

    return convertedNumberToBinary;
}