Salko17
?>

Разобраться с по информатике: укажите наибольшее трехзначное натуральное число, при вводе которого эта программа напечатает сначала 2, потом - 6 var x, a, b: longint; begin readln(x) a : =0; b: =1; while x> 0 do begin if x mod 2 > 0 then a: =a+1 else b: =b+(x mod 5); x: =x div 5; end; writeln(a); write(b); end. понимаю, что в пятиричной записи исходного числа подсчитываются четные цифры - их 2, а также сумма нечетных остатков при делении на 5 равна 5 (так как 6-1 в пятиричной записи исходного числа должны участвовать цифры 3 и 1. но сколько разрядов в пятиричной записи, какие там четные цифры и как они расставлены, я не могу понять.

Информатика

Ответы

marinakmaa86

"...напечатает сначала 2, потом - 6" -- это значит a=2 и b=6?


про пятеричные записи ничего не понял...  :) И ИМХО к чему такие сложности? И для чего нам комп и программа? Я подправил исходную прогу чтобы она выдавала все числа подходящие по условию

var x,a,b: longint;


begin

   for var i := 999 DownTo 100 do begin

       a := 0;

       b := 1;

       x := i;

       while x>0 do begin

           if x mod 2 > 0 then a := a+1 else b := b+(x mod 5);

           x := x div 5;

       end;

       if (a = 2) and (b = 6) then writeln('x = ', i, ' a = ', a, ' b = ',b);

   end;

end.


прога проводит расчет для всх трехзначных чисел от 999 до 100

итого мы видим что максимальное подходящее число это 960

при необходимости прогу можно переделать чтобы она находила только максимальное число.

СветланаВАЛМОС
Пусть исходные координаты чертежника (x;y). Смоделируем алгоритм:
0) (x;y)
1) (x-1;y-2)
2) n раз делается одно и то же: первая координата изменяется на a, затем из нее вычитается 1, вторая координата изменяется на b, затем вычитается 2. В результате координаты равны:
(x-1+n*(a-1); y-2+n*(b-2))
3) (x-1+n*(a-1)-20; y-2+n*(b-2)-12)
Концом работы программы является попадание в стартовую позицию. То есть x-1+n*(a-1)-20=x => n*(a-1)=21
y-2+n*(b-2)-12=y => n*(b-2)=14
Тогда n нужно искать среди делителей чисел 21 и 14. Точнее ответом будет НОД(21, 14)=7.
Андрей Шитенкова
Var
    f: file of integer;
    i, n, x, t, k, max: integer;
    s: integer;

begin
    randomize;
    write('n=');
    readln(n);
    
    assign(f, 'numbers.dat');
    rewrite(f);
    
    max := -1;
    for i := 1 to n do
    begin
        x := random(4800) + 20;
        write(f, x);
        write(x, ' ');
        if x > max then max := x;
    end;
    writeln;
    
    seek(f, 0);
    k := 0;
    while not eof(f) do
    begin
        read(f, x);
        t := x;
        s := 0;
        while t > 0 do
        begin
            s := s + sqr(t mod 10);
            t := t div 10;
        end;
        if x mod s = 0 then k := k + 1;
        if x > max - 50 then write(x, ' ');
    end;
    writeln;
    
    writeln(k);
end.

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

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

Разобраться с по информатике: укажите наибольшее трехзначное натуральное число, при вводе которого эта программа напечатает сначала 2, потом - 6 var x, a, b: longint; begin readln(x) a : =0; b: =1; while x> 0 do begin if x mod 2 > 0 then a: =a+1 else b: =b+(x mod 5); x: =x div 5; end; writeln(a); write(b); end. понимаю, что в пятиричной записи исходного числа подсчитываются четные цифры - их 2, а также сумма нечетных остатков при делении на 5 равна 5 (так как 6-1 в пятиричной записи исходного числа должны участвовать цифры 3 и 1. но сколько разрядов в пятиричной записи, какие там четные цифры и как они расставлены, я не могу понять.
Ваше имя (никнейм)*
Email*
Комментарий*

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

ИванМолчанов
TatianaSeliverstova64
tarigor
Budanov317
lebedevevgen
Андреевич-Екатерина1974
studiojanara
zbellatriks
Talikova164
socofilesrus4
VolkovaMaslova
KrisTinka
ksuhova
Dimston134877
Korinchan390