Объяснение:
В общем сделал так чтобы проверялись вообще все возможные перестановки чисел, а не одинарные
#include <iostream>
using namespace std;
bool is_permutation(int* A, int* B, int size);
int main()
{
int *A, *B, N;
bool result;
cin >> N;
A = new int[N];
B = new int[N];
for (int i = 0; i < N; i++) cin >> A[i];
for (int i = 0; i < N; i++) cin >> B[i];
result = is_permutation(A, B, N);
if (result) cout << "YES";
else cout << "NO";
return 0;
}
bool is_permutation(int* A, int* B, int size)
{
int CountInA, CountInB;
for (int i = 0; i < size; i++) { // Перебираем по одному все элементы массива B
CountInA = 0;
CountInB = 0;
for (int j = 0; j < size; j++)
{
if (B[i] == A[j]) CountInA++; // Считаем сколько раз этот элемент встретился в массиве А
if (B[i] == B[j]) CountInB++; // Считаем сколько раз этот элемент встретился в массиве B
}
if (CountInA != CountInB) return false;// Если счётчики не совпали, то сразу выходим из цикла
}
return true;// Если счётчики всегда совпадали, то мы попадём сюда и массивы состоят из одинакового количества одинаковых элементов
}
#include "pch.h"
#include
#include
using namespace std;
double f(double x)
{
double m = -7 * pow(x, 3) - 5.8*x - 4;
return m;
}
int main()
{
double a = -1; double b = 2;
flag1:
double c = 0.5*(a + b);
if (f(c) == 0)
cout << "The result is " << c << endl;
if (f(c)*f(a) < 0)
{
b = c;
goto flag1;
}
if (f(c)*f(b) < 0)
{
a = c;
goto flag1;
}
if (c >= a && c <= b)
cout << "The solution belongs to the interval" << endl;
else
cout << "The solution doesn't belongs to the interval";
return 0;
}
Тут с флагами. Если не нравятся флаги - перестройте под себя.
Поделитесь своими знаниями, ответьте на вопрос:
m, i: integer;
a: array[1..10] of integer;
begin
readln(m);
i := 0;
repeat
i := i + 1;
a[i] := m mod 10;
m := m div 10;
until m = 0;
writeln('Первая цифра ', a[i]);
writeln('Вторая цифра ', a[i - 1]);
end.