Объяснение:
Ну букву 'T' замените на int, к примеру:
C++Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void bubbleSort(int* arr, int size) // Сортировка пузырьком
{
int tmp;
for(int i = 0; i < size - 1; ++i) // i - номер прохода
{
for(int j = 0; j < size - 1; ++j) // внутренний цикл прохода
{
if (arr[j + 1] < arr[j])
{
tmp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = tmp;
}
}
}
}
Передавать массив вот так:
bubbleSort(имя_массива, количество_элементов);
0
Привожу 2 варианта решения.
Вариант 1: файл 1.cpp
Решение основано на обыкновенном вычислении периода дроби (для дробей, имеющих конечную десятичную запись(например, 1/2=0,5), период вычисляется для формы с нулем в периоде(то есть для 1/2 берется форма 0,5(0))) с деления столбиком.
Замечание: сам алгоритм деления в столбик я писал достаточно давно, и для других программ, поэтому его реализация в данном коде может быть неоптимальной (в плане памяти или кол-ва операций), однако он работает.
Вариант 2: файл 3.cpp
Если немного углубиться в математику, можно найти теорему, по которой дробь, представленная в виде m/n , где НОД(m, n) = 1, имеет конечную десятичную запись тогда и только тогда, когда ее знаменатель
. Тогда достаточно сократить числитель и знаменатель на общие множители, а далее выполнить проверку знаменателя.