Решу егэ div mod


Пройти тестирование по этим заданиям
Вернуться к каталогу заданий

Версия для печати и копирования в MS Word

1

Задания Д18 № 503

Переменные x и y описаны в программе как целочисленные. Определите значение переменной x после выполнения следующего фрагмента программы:

Бэйсик Паскаль

x = 432

y = x DIV 100

x = (x MOD 100) * 10

x = x + y

x : = 432;

y : = x div 100;

x : = (x mod 100) * 10;

x : = x + y;

Си++ Алгоритмический язык

x = 432;

y = x / 100;

x = (x % 100) * 10;

x = x + y;

x : = 432;

y : = div(x,100);

x : = mod(x, 100) * 10

x : = x + y

Python

x = 432

y = x // 100

x = (x % 100) * 10

x = x + y


2

Задания Д18 № 501

Определите значение переменной b после выполнения следующего фрагмента программы, в котором a и b − переменные вещественного (действительного) типа.

Бэйсик Паскаль

а = 5

b = 5 – 5 * a

b = b / 2 * a

a := 5;

b := 5 – 5 * a;

b := b / 2 * a;

Си++ Алгоритмический язык

a = 5;

b = 5 – 5 * a;

b = b / 2 * a;

a := 5

b := 5 – 5 * a

b := b / 2 * a

Python

а = 5

b = 5 – 5 * a

b = b / 2 * a


3

Задания Д18 № 504

Определите значение переменной c после выполнения следующего фрагмента программы:

Бэйсик Паскаль

а = 7

a = a – 4

b = –a

c = –a + 2 * b

a : = 7 ;

a : = a – 4 ;

b : = –a ;

c : = –a + 2 * b ;

Си++ Алгоритмический язык

а = 7 ;

a = a – 4 ;

b = –a ;

c = –a + 2 * b;

a : = 7

a : = a – 4

b : = –a

c : = –a + 2 * b

Python

а = 7

a = a – 4

b = –a

c = –a + 2 * b


4

Задания Д18 № 505

Определите значение переменной c после выполнения следующего фрагмента программы:

Бэйсик Паскаль

а = 2

b = 2 + 4

b = 1 – b

c = –b + 3 * b

a : = 2 ;

b : = 2 + 4 ;

b : = 1 – b ;

c : = –b + 3 * b ;

Си++ Алгоритмический язык

а = 2 ;

b = 2 + 4 ;

b = 1 – b ;

c = –b + 3 * b ;

a : = 2

b : = 2 + 4

b : = 1 – b

c : = –b + 3 * b

Python

а = 2

b = 2 + 4

b = 1 – b

c = –b + 3 * b


5

Задания Д18 № 506

Определите значение суммы целочисленных переменных x и y после выполнения фрагмента программы:

Бэйсик Паскаль

x = 4 + 8 * 3

y = ( x MOD 10 ) + 15

x = ( y DIV 10) + 3

x : = 4 + 8 * 3 ;

y : = ( x mod 10 ) + 15;

x : = ( y div 10 ) + 3

Си++ Алгоритмический язык

x = 4 + 8 * 3;

y = x%10 + 15;

x = y/10 + 3;

x : = 4 + 8 * 3

y : = mod(x, 10) + 15

x : = div(y, 10) + 3

Python

x = 4 + 8 * 3

y = (x % 10) + 15

x = (y // 10) + 3

Пройти тестирование по этим заданиям

Дано целое положительное число N ≥ 10. Необходимо найти наибольшую сумму двух соседних цифр в десятичной записи N. Например, для N  =  2018 нужно получить ответ 9, а для N  =  2010 ответ 2.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Бейсик Python

DIM N,M,D1,D2,S AS INTEGER

INPUT N

M = 0

D1 = N MOD 10

WHILE N > 0

    D2 = N MOD 10

    S = D1 + D2

    IF S > M THEN

        M = S

    END IF

    D1 = N MOD 10

    N = N 100

WEND

PRINT M

n = int(input())

m = 0

d1 = n%10

while n>0:

    d2 = n % 10

    s = d1 + d2

    if s > m:

        m = s

    d1 = n%10

    n //= 100

print(m)

Паскаль Алгоритмический язык

var n,m,d1,d2,s: integer;

begin

    readln(n);

    m := 0;

    d1 := n mod 10;

    while n > 0 do begin

        d2 := n mod 10;

        s := d1 + d2;

        if s > m then

            m := s;

        d1 := n mod 10;

        n := n div 100

    end;

    writeln(m)

end.

алг

нач

    цел n,m,d1,d2,s

    ввод n

    m := 0

    d1 := mod(n,10)

    нц пока n > 0

        d2 := mod(n,10)

        s := d1 + d2

        если s > m

            то m := s

        все

        d1 := mod(n,10)

        n := div(n,100)

    кц

    вывод m

кон

С++

#include <iostream>

using namespace std;

int main() {

    int n,m,d1,d2,s;

    cin >> n;

    m = 0;

    d1 = n % 10;

    while (n > 0) {

        d2 = n % 10;

        s = d1 + d2;

        if (s > m)

            m = s;

        d1 = n % 10;

        n /= 100;

    }

    cout << m;

    return 0;

}

Последовательно выполните следующее.

1.  Напишите, что выведет эта программа при вводе N = 2018.

2.  Приведите пример числа N, при котором программа выведет верный ответ. Укажите этот ответ.

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

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

в условии
в решении
в тексте к заданию
в атрибутах

Категория:

Атрибут:

Всего: 320    1–20 | 21–40 | 41–60 | 61–80 | 81–100 | 101–120 …

Добавить в вариант

Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7.

Бейсик Python

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

L = L + 1

IF M < x THEN

     M = x mod 10

ENDIF

x = x 10

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

    L = L + 1

    if M < x:

        M = x % 10

    x = x // 10

print(L)

print(M)

Паскаль Алгоритмический язык

var x, L, M: integer;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        L := L + 1;

        if M < x then

            M:= x mod 10;

        x := x div 10;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        L := L + 1

        если M < x то

            M := mod(x,10)

        все

        x := div(x,10)

    кц

    вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0){

        L = L + 1;

        if(M < x){

            M = x % 10;

        }

        x = x / 10;

    }

    cout << L << endl << M << endl;

}


Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7.

Бейсик Python

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

L = L + 1

M = M + (x mod 10)

ENDIF

x = x 10

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

    L = L + 1

    M = M + (x % 10)

    x = x // 10

print(L)

print(M)

Паскаль Алгоритмический язык

var x, L, M: integer;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        L := L + 1;

        M:= M + (x mod 10);

        x := x div 10;

    end;

    writeln(L);

    writeln(M);

end.

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        L := L + 1

        M := M + mod(x,10)

        все

        x := div(x,10)

    кц

    вывод L, нс, M

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0){

        L = L + 1;

        M = M + (x % 10);

        x = x / 10;

    }

    cout << L << endl << M endl;

}


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм напечатает сначала 2, а потом 14.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A + 1

    B = B * (X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b : integer;

begin

readln(x);

a := 0; b := 1;

while x > 0 do

    begin

        a := a + 1;

        b := b * (x mod 10);

        x := x div 10;

    end;

writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0){

        a = a + 1;

        b = b *(x%10);

        x= x / 10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a := 0; b := 1

нц пока x > 0

    a := a+1

    b := b * mod(x,10)

    x := div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= x % 10

    x = x // 10

print(a)

print(b)


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 72.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=1

WHILE X > 0

    A = A+1

    B = B*(X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a:=0; b:=1;

    while x>0 do

        begin

            a:=a+1;

            b:=b*(x mod 10);

            x:= x div 10;

        end;

writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=1;

    while (x>0){

        a=a+1;

        b=b*(x%10);

        x= x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=1

нц пока x>0

    a:=a+1

    b:=b*mod(x,10)

    x:=div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= x % 10

    x = x // 10

print(a)

print(b)


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 10.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

WHILE X > 0

    A = A+1

    B = B +(X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a:=0; b:=0;

    while x>0 do

        begin

            a:=a+1;

            b:=b + (x mod 10);

            x:=x div 10;

        end;

    writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

int x, a, b;

    cin >> x;

    a=0; b=0;

    while (x>0){

        a = a+1;

        b = b + (x%10);

        x = x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x>0

    a:=a+1

    b:=b+mod(x,10)

    x:=div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b += x % 10

    x = x // 10

print(a)

print(b)


Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 10.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

WHILE X > 0

    A = A+1

    B = B +(X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a:=0; b:=0;

    while x>0 do

        begin

            a:=a + 1;

            b:=b + (x mod 10);

            x:=x div 10;

        end;

writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=0;

    while (x>0){

        a = a+1;

        b = b +(x%10);

        x = x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x>0

    a:=a+1

    b:=b+mod(x,10)

    x:=div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b += x % 10

    x = x // 10

print(a)

print(b)


Определите значение целочисленной переменной c после выполнения фрагмента программы:

Бэйсик Паскаль

а = 6*12 + 3

b = (a 10)+ 5

a = (b MOD 10)+ 1

с = a + b

а :=6*12 + 3;

b :=(a div 10)+ 5;

a :=(b mod 10)+ 1;

с := a + b;

Си++ Алгоритмический язык

а =6*12 + 3;

b =(a / 10)+ 5;

a =(b % 10)+ 1

с = a + b;

а :=6*12 + 3

b :=div(a, 10)+ 5

a := mod(b, 10)+ 1

с := a + b

Python

а =6*12 + 3

b =(a // 10)+ 5

a =(b % 10)+ 1

с = a + b


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A + 1

    B = B * (X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b : integer;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do

        begin

            a := a + 1;

            b := b * (x mod 10);

            x := x div 10;

        end;

writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0){

        a = a + 1;

        b = b *(x%10);

        x= x / 10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a := 0; b := 1

нц пока x > 0

    a := a+1

    b := b * mod(x,10)

    x := div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= x % 10

    x = x // 10

print(a)

print(b)

Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 5.

Источник: Яндекс: Тренировочная работа ЕГЭ по информатике. Вариант 1.


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b.

Бейсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A + 1

    B = B * (X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a: = 0; b: = 1;

    while x>0 do

        begin

            a : = a + 1;

            b : = b * (x mod 10);

            x : = x div 10

        end;

    writeln(a);

    write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x>0){

        a = a + 1;

        b = b * (x%10);

        x = x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a: = 0; b: = 1

нц пока x>0

    a : = a + 1

    b : = b * mod(x,10)

    x : = div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= x % 10

    x = x // 10

print(a)

print(b)

Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 14.

Источник: Яндекс: Тренировочная работа ЕГЭ по информатике. Вариант 2.


Ниже на четырёх языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 21.

Бейсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=1

WHILE X > 0

    A = A+1

    B = B*(X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a:=0; b:=1;

    while x>0 do

        begin

            a:=a+1;

            b:=b*(x mod 10);

            x:= x div 10

        end;

    writeln(a); write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=1;

    while (x>0){

        a=a+1;

        b=b*(x%10);

        x= x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=1

нц пока x>0

    a:=a+1

    b:=b*mod(x,10)

    x:=div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= (x % 10)

    x //= 10

print(a)

print(b)

Источник: Демонстрационная версия ЕГЭ—2013 по информатике.


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b.

Бейсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

WHILE X > 0

A = A+1

B = B +(X MOD 10)

X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a:=0; b:=0;

    while x>0 do

    begin

        a:=a+1;

        b:=b+(x mod 10);

        x:=x div 10;

    end;

    writeln(a); write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=0;

    while (x>0){

        a=a+1;

        b=b + (x%10);

        x= x/10;

    }

    cout << a << endl << b << endl;

}

алг

нач

    цел x, a, b

    ввод x

    a:=0; b:=0

    нц пока x>0

        a:=a+1

        b:=b+mod(x,10)

        x:=div(x,10)

    кц

    вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b += x % 10

    x = x // 10

print(a)

print(b)

Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8.


Ниже на 5-ти языках записан алгоритм. Получив на вход число х, этот алгоритм печатает два числа а и Ь. Укажите наибольшее из таких чисел х, при вводе которых алгоритм печатает сначала 2, а потом 35.

Бэйсик Паскаль

DIM X, А, В AS INTEGER

INPUT X

А=0 : B=1

WHILE X > 0

    А = A+1

    В = В * (X MOD 10)

    X = X 10

WEND

PRINT А

PRINT В

var х, а, b: integer;

begin

    readln (x);

    а := 0 ; b := 1;

    while x>0 do

        begin

            a := a + 1;

            b : = b * (x mod 10);

            х := x div 10;

        end;

writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=1;

    while (x>0) {

        a = a+1;

        b = b * (x%10);

        x = x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел х, a, b

ввод x

а := 0; Ь := 1

нц пока х>0

    а := а+1

    b := b * mod(х, 10)

    х := div(х, 10)

кц

вывод а, нc, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= x % 10

    x = x // 10

print(a)

print(b)


Ниже на 5-ти языках записан алгоритм. Получив на вход число х, этот алгоритм печатает два числа а и Ь. Укажите наибольшее из таких чисел х, при вводе которых алгоритм печатает сначала 2, а потом 21.

Бэйсик Паскаль

DIM X, А, В AS INTEGER

INPUT X

А=0 : B=1

WHILE X > 0

    А = A+1

    В = В*(X MOD 10)

    X = X 10

WEND

PRINT А

PRINT В

var х, а, b: integer;

begin

    readln (x) ;

    а: = 0 ; b : = 1;

    while x>0 do

        begin

        а : = a + 1 ;

        b : = b*(x mod 10) ;

        х : = x div 10;

        end;

writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=1;

    while (x>0){

        a = a+1 ;

        b = b*(x%10);

        x = x /10 ;

    }

    cout << a << endl << b endl;

}

алг

нач

цел х, a, b

ввод x

а : = 0; Ь : = 1

нц пока х>0

    а := а+1

    b := b*mod(х,10)

    х:=div(х,10)

кц

вывод а, нc, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *= x % 10

    x = x // 10

print(a)

print(b)


Ниже на 5-ти языках программирования записан алгоритм. Получив на вход число х, этот алгоритм печатает два числа а и Ь. Укажите наименьшее из таких чисел х. при вводе которых алгоритм печатает сначала 3. а потом 7.

Бейсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

WHILE X > 0

        A = A + 1

        B = B + (X MOD 10)

        X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a: = 0; b: = 0;

    while x>0 do

        begin

            a : = a + 1;

            b : = b + (x mod 10);

            x : = x div 10

        end;

    writeln(a); write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x>0){

        a = a + 1;

        b=b+(x%10);

        x = x / 10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a: = 0; b: = 0

нц пока x>0

    a : = a + 1

    b : = b + mod(x,10)

    x : = div (x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b += x % 10

    x = x // 10

print(a)

print(b)


Ниже на 5-ти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 6, а потом 5.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

    A = A + 2

    B = B + (X MOD 10)

    X = X / 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 0;

    while x>0 do

        begin

            a := a + 2;

            b := b + (x mod 10);

            x:= x div 10;

        end;

    writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x > 0){

        a = a + 2;

        b = b + (x%10);

        x = x / 10;

        }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x > 0

    a := a + 2

    b := b+mod(x,10)

    x := div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 2

    b += x % 10

    x = x // 10

print(a)

print(b)


Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 6, а потом 9.

Бэйсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

    A = A + 2

    B = B + (X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 0;

    while x>0 do

        begin

            a := a + 2;

            b := b + (x mod 10);

            x:= x div 10;

        end;

    writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x > 0){

        a = a + 2;

        b = b + (x%10);

        x = x / 10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x > 0

    a := a + 2

    b := b+mod(x,10)

    x := div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 2

    b += (x % 10)

    x //= 10

print(a)

print(b)


Ниже на пяти языках записан алгоритм. Получив на вход число х, этот алгоритм печатает два числа а и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 13.

Бейсик Паскаль

DIM X, А, В AS INTEGER

INPUT X

А = 0; В = 0

WHILE X > 0

    А = А+1

    В = В + (X MOD 100)

    X = Х100

WEND

PRINT А

PRINT В

var х, a, b: integer;

begin

    readln(х);

    а : = 0; b : = 0;

    while х > 0 do

        begin

            а := а+1;

            b := b + (х mod 100) ;

            х := х div 100;

    end;

writeln(a); write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x > 0) {

        a = a+1;

        b = b + (x%100);

        x = x/100;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b ввод x

a:=0; b:=0 нц

пока x > 0 a := a+1

    b := b+mod(x,100)

    x := div(x,100)

кц

вывод а, не, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b += (x % 100)

    x //= 100

print(a)

print(b)


Ниже на пяти языках записан алгоритм. Получив на вход число х, этот алгоритм печатает два числа а и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 17.

Бейсик Паскаль

DIM X, А, В AS INTEGER

INPUT X

А = 0: В = 0

WHILE X > 0

    А = А+1

    В = В + (X MOD 100)

    X = Х100

WEND

PRINT А

PRINT В

var х, a, b: integer;

begin

    readln(х);

    а : = 0; b : = 0;

    while х > 0 do

        begin

            а := а+1;

            b := b + (х mod 100);

            х := х div 100;

        end;

    writeln(a);

    write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x > 0) {

        a = a+1;

        b = b + (x%100);

        x = x/100;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x > 0

    a := a+1

    b := b+mod(x,100)

    x := div(x,100)

кц

вывод а, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b += (x % 100)

    x //= 100

print(a)

print(b)


Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 11.

Бейсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

    A = A + 1

    B = B + (X MOD 10)

    X = X 10

WEND

PRINT A

PRINT B

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 0;

    while x>0 do

        begin

            a:= a + 1;

            b:= b + (x mod 10);

            x:= x div 10

        end;

writeln(a); write(b);

end.

Си++ Алгоритмический язык

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a=0; b=0;

    while (x>0){

        a=a+1;

        b=b+(x%10);

        x=x/10;

    }

    cout << a << endl << b << endl;

}

алг

нач

цел x, a, b

ввод x

a := 0; b := 0

нц пока x>0

    a := a + 1

    b := b + mod(x,10)

    x := div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 0

while x > 0:

    a += 1

    b +=x % 10

    x //= 10

print(a)

print(b)

Источник: ЕГЭ по информатике 05.05.2014. Досрочная волна. Вариант 1.


Ниже на пяти языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите такое наибольшее число x, что при вводе x алгоритм печатает сначала 2, а потом 0.

Бейсик Паскаль

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A + 1

    B = B*(X MOD 10)

    X = X10

WEND

PRINT A

PRINT B

program B08;

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do

        begin

            a := a+1;

            b := b*(x mod 10);

            x := x div 10;

        end;

    writeln(a); write(b);

end.

Си++ Алгоритмический

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0){

        a = a+1;

        b = b*(x%10);

        x = x/10;

    }

    cout << a << endl << b endl;

}

алг

нач

цел x, a, b

ввод x

a := 0; b := 1

нц пока x > 0

    a := a+1

    b := b*mod(x,10)

    x := div(x,10)

кц

вывод a, нс, b

кон

Python

x = int(input())

a = 0

b = 1

while x > 0:

    a += 1

    b *=x % 10

    x //= 10

print(a)

print(b)

Всего: 320    1–20 | 21–40 | 41–60 | 61–80 | 81–100 | 101–120 …

13 ноября, 2015 Andrey K

В данной статье мы рассмотрим операторы mod и div, их применение при решении задач. Рассмотрим несколько примеров с решением, а также задачи для самостоятельного выполнения.

Успехов вам в программировании!!!


  • С помощью mod мы получаем остаток от деления числа a на число b.
a:= 21;
b:=8;
s:=21 mod 8;

Переменная s будет равна 5.

  • С помощью оператора div мы получим целую часть от деления числа a на  число b
a:= 21;
b:=8;
s:=21 div 8;

Переменная s будет равна 2.

Использование mod  при решении задач

  • Чаще всего оператор mod используется для определения кратности числа и используется в условии (оператор IF)

Задача: определить, является ли число, введенное с клавиатуры, четным.

Чтобы ответить на этот вопрос нужно поделить число a с помощью mod на 2 (a mod 2) и сравнить это значение с нулем. Условие будет выглядеть так: a mod 2 = 0

var a:integer;
begin
readln(a); // вводим число
if a mod 2 = 0 then writeln('введенное число - четное'); // если условие выполняется - выводим на экран сообщение
end.

Итак, чтобы узнать: делится ли число a на число b без остатка, нужно воспользоваться условием:

Оператор mod

Оператор mod

  • Также оператор mod используется для определения последней цифры числа

Задача:умножить последнюю цифру числа на 10 и результат вывести на экран.

Чтобы поместить последнюю цифру числа a в некоторую переменную необходимо поделить это число с помощью mod на 10. Получим: b:=a mod 10 — в переменной b окажется последняя цифра числа.

var a,b,res:integer;
begin
readln(a);
b:= a mod 10; //присваиваем переменной b последнюю цифру числа a
res:=b*10;  // умножаем b на 10
writeln(res); // выводим результат на экран
end.

Если мы хотим отделить 2-е последние цифры числа, то должны делить с помощью mod на 100; если 3 — на 1000 и т.д.

Чтобы узнать, оканчивается ли число a на цифру b необходимо воспользоваться условием:

amod10

Задача: если введенное с клавиатуры число оканчивается на 5 и делится на 7, то вывести «YES» иначе «NO»

var a:integer;
begin
readln(a);
if (a mod 7 = 0) and (a mod 10 = 5) then writeln('YES') 
                                    else writeln('NO'); 
end.

С помощью рассмотренных условий и цикла со счетчиком можно решить следующую задачу:

посчитать количество чисел, которые кратны 9 и оканчиваются на 5 в диапазоне от 1 до 500

var i, n:integer;
begin
for i:=1 to 500 do
     if (i mod 9 = 0) and (i mod 10 = 5) then n:=n+1;
writeln('Количество чисел = ', n);
end.

Использование оператора div при решении задач

Задача: дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т.е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.

Отделить первую цифру числа можно, поделив его с помощью div на 100.

Отделить последнюю цифру можно, поделив его с помощью mod на 10. Вторая цифра нам не нужна для решения задачи, т.к. от нее не зависит, будет ли число палиндромом.

var a, a1, a3:integer;
begin
readln(a);
a1:=a div 100;
a3:= a mod 10;
if a1=a3 then writeln('Число ', a,' является палиндромом');
end.

Задачи для самостоятельного выполнения:

  1. Дано трехзначное число. Определить:
    • является ли сума его цифр двузначным числом
    • является ли произведение его цифр трехзначным числом
    • больше ли числа a произведение его цифр
    • кратна ли пяти сумма его цифр
    • кратна ли сумма его цифр числу a
  2.  Дано четырехзначное число. Определить:
    • равна ли сумма двух первых его цифр сумме двух его последних цифр
    • кратна ли трем сума его цифр
    • кратно ли четырем произведение его цифр
    • кратно ли произведение его цифр числу а

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

На чтение 3 мин. Опубликовано 04.07.2020

В нашей статье мы разберем такие операции, как div и mod в Паскале. Сейчас вы узнаете, что это такое и зачем эти операции нужны.

На фото изображено окно программы IDE PascalABC.Net.

Вообще, div и mod очень похожи на обычное деление, которому нас учат в школе. Но если они зачем-то существуют, значит, все-таки отличия есть. И уже в самом начале очень хочется отметить, что обе операции работают только с целыми числами (integer).

Оператор div в Pascal

На самом деле здесь все довольно просто. Div применяется для поиска целой части от деления.

Приведем в пример код, чтобы разобраться:

program enteryourname1;
uses crt;
var
   n : integer;
begin
   n := 9;
   n := n div 4;
end.

В итоге наше n будет равняться двум. Если делить 9 на 4, то выходит 2,25. То есть, применяя операцию div в Паскале, вы получите результат до запятой (целую часть числа).

Оператор mod в Pascal

Данная операция действует немного наоборот — она уже ищет остаток от деления. Бывает, что новички в Паскале ошибочно думают, что mod ищет дробную часть. Нет, это не так.

Возьмем в пример все тот же код:

program enteryourname2;
uses crt;
var
n : integer;
begin
n := 9;
n := n mod 4;
end.

В итоге мы получаем n, которое равно единице. Как так получилось? Когда мы делим 9 на 4, мы можем взять два раза по 4 (получается 8). Но у нас остается единица, которая не делится на 4. Такую вот “единицу” и будет искать mod, или, говоря по-другому, остаток от деления ваших чисел.

Вообще, нередко mod в Паскале используют для того, чтобы определить кратности чисел. Обратите внимание, что число является кратным, если его остаток равняется нулю.

Использование оператора div и mod при решении задач

Мы приведем несколько примеров использования этой программы для того, чтобы вам было еще легче разобраться, как это работает.

program enteryourname3;
uses crt;
var A,B,C: integer;
begin
clrscr;
A := 13;
B := 5;
C := A div B;
writeln (‘13 div 5 =  ‘, C);
C := A mod B;
writeln (‘13 mod 5 =  ‘, C);
readln;
end.

Таким образом, используя div, мы получим ответ 2 (13 разделить на 5 равняется 2,6; нам же нужна только целая часть). А используя mod, получаем результат 3 (остаток от деления).

Вот еще один пример:

program enteryourname4;
uses crt;
var A,B,C: integer;
begin
clrscr;
A := 290;
B := 11;
C := A div B;
writeln (‘290 div 11 =  ‘, C);
C := A mod B;
writeln (‘290 mod 11 =  ‘, C);
readln;
end.

Конечно, программа все сама посчитает. Но еще раз уточним: здесь div будет равняться 26 (берем только целую часть), а mod — 4 (остаток от деления).

Надеемся, мы ответили на ваш вопрос, что же значат mod и div в программе Pascal, и тем самым смогли облегчить вашу работу в этой программе. Свои предложения вы можете оставить в комментариях.

Автор материалов — Лада Борисовна Есакова.

В этой задаче используется описание алгоритмов на языках программирования.

Основными используемыми конструкциями являются конструкции ветвления и циклов.

Конструкция ветвления в языке Паскаль

Полная

Неполная

if <логическое  выражение> then

<оператор1>
else <оператор2>;

if <логическое выражение> then

<оператор1>;

При этом оператор может быть простым, а может быть составным.

Составной оператор имеет структуру:

begin

<Последовательность_операторов>

end

Конструкция циклов в языке Паскаль

Цикл со счетчиком (или цикл for)

Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее.

В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Паскале тело цикла не должно содержать выражений, изменяющих счетчик.

Цикл for существует в двух формах:

for <счетчик>:=<значение> to <конечное_значение> do

<тело_цикла>;

for <счетчик>:=<значение> downto <конечное_значение> do

<тело_цикла>;

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

Цикл с предусловием (или цикл while)

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

while <логическое_выражение> do

<тело_цикла>;

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет зацикливание.

Цикл с постусловием (или цикл repeat)

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако, бывают ситуации, когда тело цикла должно выполниться хотя бы один раз, независимо от того, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. В случае true происходит выход из цикла, в случае false – его повторение:

repeat <тело_цикла>

until <логическое_выражение>;

Тело цикла может включать в себя другой цикл. Количество вложенных циклов не ограничено.

Операции div и mod

Операция div возвращает целочисленный результат деления. При этом дробная часть будет отброшена. X div Y вернет целую часть от деления X на Y.

Например, после работы оператора z := 55 div 6, z будет равно 9.

Операция mod возвращает остаток от деления деления. X mod Y вернет остаток от деления X на Y.

Например, после работы оператора z := 55 mod 6, z будет равно 1.

Поиск наименьшего числа

Пример 1.

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­сан ал­го­ритм. По­лу­чив на вход число x, этот ал­го­ритм пе­ча­та­ет числа: a и b. Ука­жи­те наи­мень­шее по­ло­жи­тель­ное пя­ти­знач­ное число x, при вводе ко­то­ро­го ал­го­ритм пе­ча­та­ет сна­ча­ла 6, а потом 3.

Бей­сик

Python

DIM X, Y, A, B AS INTEGER

A = 0

B = 10

INPUT X

WHILE X > 0

Y = X MOD 10

X = X 10

IF Y > A THEN A = Y

IF Y < B THEN B = Y

WEND

PRINT A

PRINT B

a = 0

b = 10

x = int(input())

while x > 0:

y = x % 10

x = x // 10

if y > a:

a = y

if y < b:

b = y

print(a)

print(b)

Пас­каль

Ал­го­рит­ми­че­ский язык

var x, y, a, b: integer;

begin

a := 0;

b := 10;

readln(x);

while x > 0 do

begin

y := x mod 10;

x := x div 10

if y > a then

a := y;

if y < b then

b := y;

end;

writeln(a);

writeln(b)

end.

алг

нач

цел x, y, a, b

a := 0

b := 10

ввод x

нц пока x > 0

y := mod(x, 10)

x := div(x, 10)

если y > a

то a := y

все

если y < b

то b := y

все

кц

вывод a, нс, b

кон

Си

#include <stdio.h>

int main()

{

int x, y, a, b;

a = 0;

b = 10;

scanf(«%d», &x);

while (x > 0)

{

y = x % 10;

x = x / 10;

if (y > a)

a = y;

if (y < b)

b = y;

}

printf(«%dn%dn», a, b);

}

Решение:

Т. к. опе­ра­тор div воз­вра­ща­ет целую часть от де­ле­ния, то при де­ле­нии на 10 это рав­но­силь­но от­се­че­нию по­след­ней цифры. Значит, цикл вы­пол­нить­ся пять раз.

В пе­ре­мен­ную a за­пи­сы­ва­ет­ся оста­ток от де­ле­ния числа x на 10 при усло­вии, что этот оста­ток боль­ше числа уже за­пи­сан­но­го в пе­ре­мен­ной a. В пе­ре­мен­ную b за­пи­сы­ва­ет­ся оста­ток от де­ле­ния числа x на 10 при усло­вии, что этот оста­ток мень­ше числа уже за­пи­сан­но­го в пе­ре­мен­ной b. Таким об­ра­зом, в пе­ре­мен­ную a за­пи­сы­ва­ет­ся наи­боль­шая цифра числа x, а в пе­ре­мен­ную b — наи­мень­шая. Итак, нужно найти наименьшее пятизначное число, у которого наименьшая цифра равна 3, а наибольшая  — равна 6. Такое число:33336.

Ответ: 33336

Пример 2.

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­сан ал­го­ритм. По­лу­чив на вход число x, этот ал­го­ритм пе­ча­та­ет число M. Из­вест­но, что x > 100. Ука­жи­те наи­мень­шее такое (т.е. боль­шее 100) число x, при вводе ко­то­ро­го ал­го­ритм пе­ча­та­ет 26.

Решение:

В теле цикла числа M и L умень­ша­ют­ся, пока не ста­нут рав­ны­ми. Поскольку в итоге напечатано 26, значит, в конце программы оба числа равны 26. Рассмотрим изменение этой пары чисел в обратном порядке (при этом не знаем, какое именно число M, а какое L):

(26; 26) – (52; 26) – (78; 52) – (130; 52)

Если 130 – это L в начале работы (равное x), то т.к. оно четное, M в начале работы должно быть 52. Условие выполнено для пары (130; 52), значит искомое число 130.

Ответ: 130

Поиск наибольшего числа

Пример 3.

Ниже за­пи­са­на про­грам­ма. По­лу­чив на вход число x , эта про­грам­ма пе­ча­та­ет два числа, L и M. Ука­жи­те наи­боль­шее из таких чисел x, при вводе ко­то­рых ал­го­ритм пе­ча­та­ет сна­ча­ла 3, а потом 7.

var x, L, M: integer;

begin

    readln(x);

    L:=0; M:=0;

    while x > 0 do begin

        L:= L + 1;

        if x mod 2 = 0 then

            M:= M + (x mod 10) div 2;

        x:= x div 10;

    end;

    writeln(L); write(M);

end.

Решение:

На каж­дом шаге от де­ся­тич­ной за­пи­си x от­се­ка­ет­ся по­след­няя цифра до тех пор, пока все цифры не будут от­се­че­ны, то есть x не ста­нет равно 0. В переменной L накапливается число выполнений цикла. L=3, значит цикл выполнился 3 раза, значит исходное число x трехзначное.

Те­перь рас­смот­рим опе­ра­тор из­ме­не­ния M:

if x mod 2 = 0 then

M:= M + (x mod 10) div 2;

end;

M увеличивается только в случае, если текущее значение  x четное, т.е. если четная его последняя цифра. В этом случае к текущему значению M прибавляется целочисленный результат деления последней цифры текущего значения x на 2.

Таким образом, М – это сумма половин четных цифр числа x.

Значит, нам нужно найти наибольшее трехзначное число х, сумма четных цифр которого равна 14.

Наибольшее такое число 986.

Ответ: 986

Пример 4.

Ниже на пяти язы­ках за­пи­сан ал­го­ритм. По­лу­чив на вход число x, этот ал­го­ритм пе­ча­та­ет два числа a и b. Ука­жи­те наи­боль­шее из таких чисел x, при вводе ко­то­ро­го ал­го­ритм пе­ча­та­ет сна­ча­ла 2, а потом 5.

 Бей­сик

Python

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

A = A+1

B = B * (X MOD 100)

X = X100

WEND

PRINT A

PRINT B

x = int(input())

a, b = 0, 1

while x > 0:

a = a + 1

b = b * x%100

x = x//100

print(a)

print(b)

Пас­каль

Ал­го­рит­ми­че­ский язык

var x, a, b: integer;

begin

readln(x);

a := 0; b := 1;

while x > 0 do

begin

a := a+1;

b := b*(x mod 100);

x := x div 100;

end;

writeln(a); write(b);

end.

алг

нач

цел x, a, b

ввод x

a:=0; b:=1

нц пока x > 0

a := a+1

b := b*mod(x,100)

x := div(x,100)

кц

вывод a, нс, b

кон

Си

#include <stdio.h>

void main()

{

int x, a, b;

scanf(«%d», &x);

a = 0; b = 1;

while (x > 0) {

a = a+1;

b = b * (x%100);

x = x/100;

}

printf(«%dn%d», a, b);

}

Решение:

Т. к. опе­ра­тор div воз­вра­ща­ет целую часть от де­ле­ния, то при де­ле­нии на 100 это рав­но­силь­но от­се­че­нию по­след­них двух цифр.

На каж­дом шаге от де­ся­тич­ной за­пи­си x от­се­ка­ет­ся две по­след­них цифры до тех пор, пока все цифры не будут от­се­че­ны, то есть x не ста­нет равно 0.

В переменной a накапливается количество выполнений цикла, a=2, значит число x трехзначное или четырехзначное.

В переменной b накапливается произведение двух чисел: числа, состоящего из последних двух цифр числа х и первой цифры числа х, если число x трехзначное (или двух первых цифр, если число x четырехзначное).

Т.к. b=5, то второй из множителей не может быть двузначным, т.е. число x трехзначное. Наибольшее такое число равно 501.

Ответ: 501

Благодарим за то, что пользуйтесь нашими статьями.
Информация на странице «Задача №20. Работа с циклами и условными операторами.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
Чтобы успешно сдать нужные и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
Также вы можете воспользоваться другими материалами из разделов нашего сайта.

Публикация обновлена:
09.03.2023

ЕГЭ информатика 16 задание разбор, теория, как решать.

Рекурсивные алгоритмы, (П) — 1 балл

Е16.28 Чему равно значение выражения F(2023) / F(2020)?

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = 1 при n = 1; F(n) = n × F(n − 1), если n > 1. Чему равно значение выражения F(2023) / F(2020)? Ответ:   Демонстрационный вариант ЕГЭ 2023 г.  – задание №16 

Читать далее

Е16.27 Укажите наименьшее значение a, для которого F(a, 0) = 1392781243

Обозначим частное от деления целочисленного натурального числа a на натуральное число b как a div b, а остаток как a mod b. Например, 13 div 3 = 4, 13 mod 3 = 1. Алгоритм вычисления значения функции F(a, b), где a и b – целые неотрицательные числа, задан следующими соотношениями: F(0, b) = b; F(a, …

Читать далее

Е16.26 Чему равно значение функции F(42)?

Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями: F(n) = 1 при n = 1; F(n) = 3 × n + F(n — 2), если n > 1 и при этом n нечётно, F(n) = 4 × F(n / 2), если n > 1 и при этом n чётно. Чему …

Читать далее

Е16.25 Укажите количество таких значений n < 1 000 000 000, для которых F(n) = 2.

Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(0) = 0; F(n) = F(n – 1) + 1, если n нечётно; F(n) = F(n/2), если n > 0 и при этом n чётно. Укажите количество таких значений n < 1 000 000 000, для которых F(n) = 2. СтатГрад …

Читать далее

Е16.24 являющихся результатом вызова функции для значений n в диапазоне [40; 50]

Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:

F(n) = n + 3, при n 3

F(n) = F(n 2) + n, при n > 3 и четном значении F(n1),

F(n) = F(n 2) + 2· n, при n > 3 и нечетном значении F(n1)

Определите сумму значений, являющихся результатом вызова функции для значений n в диапазоне [40; 50]. Ответ:   Е. Джобс

Читать далее

Е16.23 F(n) = F(n – 1) – F(n – 2) + 3n, при n > 1 и n – четно

Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:

F(0) = 1, F(1) = 3

F(n) = F(n 1) F(n 2) + 3n, при n > 1 и n четно

F(n) = F(n 2) F(n 3) + 2n, при n > 1 и n нечетно

Чему равно значение функции F(40)? В ответе запишите только целое число Ответ:   Е. Джобс

Читать далее

Е16.22 Сколько существует таких чисел n, что 1 ≤ n ≤ 500 и F(n) = 8

Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(0) = 0; F(n) = F(n/2), если n > 0 и при этом n чётно; F(n) = 1 + F(n – 1), если n нечётно. Сколько существует таких чисел n, что 1 ≤ n ≤ 500 и F(n) = 8? Ответ: …

Читать далее

Е16.21 F(n) = 1 при n ≤ 1; F(n) = n · F(n – 1) при чётных n > 1;

Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = 1 при n ≤ 1; F(n) = n · F(n – 1) при чётных n > 1; F(n) = n + F(n – 2) при нечётных n > 1; Определите значение F(84). Ответ:   Тренировочный вариант от 16.11.2020 «Евгений Джобс»

Читать далее

Е16.20 для которых сумма цифр значения F(n) равна 27.

Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = n · n + 5 · n + 4, при n > 30 F(n) = F(n+1) + 3 · F(n+4), при чётных n ≤ 30 F(n) = 2 · F(n+2) + F(n+5), при нечётных n ≤ 30 Определите количество натуральных значений n из отрезка [1; 1000], …

Читать далее

Е16.19 F(0) = 0; F(n) = n + F(n – 3), если n > 0 и при этом n mod 3 = 0;

F(0) = 0; F(n) = n + F(n – 3), если n > 0 и при этом n mod 3 = 0; F(n) = n + F(n – (n mod 3)), если n mod 3 > 0. Чему равно значение функции F(25)? Обозначим через a mod b остаток от деления натурального числа a на натуральное …

Читать далее

Понравилась статья? Поделить с друзьями:
  • Решу егэ australia
  • Решу егэ api
  • Решу егэ 99759
  • Решу егэ 99619
  • Решу егэ 99617