sastakhova
?>

Составьте программу нахождения наибольшего общего делителя для двух чисел. (воспользоваться алгоритмом евклида алгоритм евклида поиска наибольшего общего делителя двух чисел: вычитай из большего меньшее, пока числа не станут равны. полученное значение и будет искомым.

Информатика

Ответы

msk27
Var  a, b: word; function nod(x, y: integer): integer; begin  repeat        if abs(x) > abs(y) then          x : = x mod y      else        y : = y mod x;     until (x = 0) or (y = 0);     nod : = abs(x + y);   end; begin    write('a='); read(a);       write('b='); readln(b);   writeln('nod(a,b)=', nod(a, b));   end.
ale-protasov

Задание 1

#include <iostream>

#include <string>

using std::cout;

using std::cin;

using std::endl;

int main()

{    

       int arr[10];  //если у тебя дни недели то заменяй int на string

       // Заполняем массив с клавиатуры

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

           cout << "[" << i + 1 << "]" << ": ";

           cin >> arr[i];

       }

       // И выводим заполненный массив.

       cout << "\nВаш массив: ";

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

           cout << arr[i] << " ";

       }

       cout << endl;

       return 0;

}

Объяснение:

asskokov
                                     PascalABC.NET                                       function ToBinary (x:integer):string; beginif (x>0) then ToBinary := ToBinary(x div 2) + (x mod 2).ToString;end; function FromBinary (x:string):integer; beginif (x.Length>0) then FromBinary := FromBinary(x.Substring(1)) + x[1].ToDigit*Round(Power(2,x.Length-1));end; function func (x:integer):integer; beginvar s := ToBinary(x); loop 2 do s += s.AsEnumerable.Sum(c->c.ToDigit) mod 2; func:=FromBinary(s);end; begin Println('f(N):',func(ReadInteger('N:'))); Println('Количество:',(1..160).Count(x->func(x) in 90..160)); end.

Примечание:

Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).

ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).

Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).

Пример работы:


Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Составьте программу нахождения наибольшего общего делителя для двух чисел. (воспользоваться алгоритмом евклида алгоритм евклида поиска наибольшего общего делителя двух чисел: вычитай из большего меньшее, пока числа не станут равны. полученное значение и будет искомым.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

oliayur4encko
ЕлизаветаВладимирович
Anna Artem
nadezhdasvirina
zalev
dentalfamily
korj8
metelkin7338
artemkolchanov24
Египтян2004
Stepanovich_Makarov
VladimirovichKazakova1202
Как рандомизировать NDCDEVICEID?​
Kozlovao4
mayorovmisc6
РобертИрина