ksp86450
09.10.2021 18:09

Проанализируйте приведенную ниже процедуру вывода общего решения.
Procedure Diofant2 (a,b,c:Integer);
Var d,x,y,cd,bd,ad:Integer;
Begin
ExEuclid (abs(a),abs(b),d,x,y);1.5. Расширенный алгоритм Евклида 87
If c Mod d<>0 Then WriteLn('ɪɟɲɟɧɢɣ ɧɟɬ')
Else Begin
cd:=Abs(c) Div d;
x:=x*cd;
y:=y*cd;
bd:=Abs(b) Div d;
ad:=Abs(a) Div d;
If x>0 Then bd:=-bd Else ad:=-ad;
While Abs(x+bd)+Abs(y+ad) Do Begin
x:=x+bd;
y:=y+ad;
End;
If a<0 Then Begin x:=-x; bd:=-bd; End;
If b<0 Then Begin y:=-y; ad:=-ad; End;
If c<0 Then Begin
x:=-x; bd:=-bd;
y:=-y; ad:=-ad;
End;
WriteLn(x,' ',bd, '*k');
WriteLn(y,' ',ad, '*k');
End;
End;

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
miheeva74
15.08.2021 07:32
Сначала код без комментариев:

Var
S:longint;
i:integer;
A:byte;

Begin
S:=0;
Repeat
   Read(A);
   if (A mod 2 <> 0)and(A mod 7 = 0) then S:=S+A;
Until A = 0;
WriteLn('S = ',S);
End.

Теперь объяснение каждой строки:

Var
S:longint;
i:integer;
A:byte; // В эту переменную будет вводится число с клавиатуры. Тип Byte может принимать значения от 0 до 255. Поэтому его как раз хватит.

Begin
S:=0; // Тут будет храниться сумма, поэтому переменную следует сперва обнулить.

Repeat // далее начинается цикл
   Read(A); // эта команда каждый раз считывает с клавы число, и записывает его в переменную A.

   if (A mod 2 <> 0)and(A mod 7 = 0) then S:=S+A; //тут проверяется 2 условия, и если они выполняются - к переменной S прибавляется значение переменной А
   1 условие: число нечётно, то есть остаток от деления его на 2 не равен нулю (A mod 2 <>0)
   2 условие: Число кратно 7, то есть делится без остатка на 7, то есть остаток от деления равен нулю (A mod 7 = 0)

Until A = 0; // Цикл повторяется до тех пор, пока введённое с клавы число не будет равно нулю (A = 0)

WriteLn('S = ',S); // Тут выводится искомая сумма
End.
0,0(0 оценок)
Ответ:
2004080111
07.04.2020 11:02

#include <bits/stdc++.h>

using namespace std;

int main()

{

   int n, k1 = 0,k2 = 0;

   cin >> n;

   int b = 0;

   vector<int> a;

   for(int i = 0; i < n; ++i){

       cin >> b;

       a.push_back(b);

   }

   for(int i = 0; i < a.size(); ++i)

       if(!(a.at(i)%2==0)){

           cout << a.at(i) << " ";

           k1++;

       }

   cout << endl;

   for(int i = 0; i < a.size(); ++i)

       if(a.at(i)%2==0){

           cout << a.at(i) << " ";

           k2++;

       }

   cout << endl;

   if(k1 > k2)

       cout << 3;

   else

       cout << 4;

   return 0;

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота