zuzman601
?>

Язык - phyton. решите, , ! 1. ввести число. если оно неотрицательно, то вычесть из него 10, в противном случае прибавить к нему 10. 2. ввести два числа. сравнить их. максимальное число возвести в квадрат. 3. ввести два числа. если сумма этих чисел четная, то вывести на экран произведение этих чисел, иначе вывести на экран их частное.

Информатика

Ответы

paninsv
Задача 1.
x=float(input())   #ввод числа
if x>=0:               #если число неотрицательное
    x-=10             #вычесть 10
else:                  #иначе
    x+=10            #прибавить 10
print(x)              #вывод числа

Задача 2.
x=float(input())   #ввод первого числа
y=float(input())   #ввод второго числа
max=x                #примем первое число за максимальное
if y>max:            #если второе число больше
    max=y            #то считать второе число максимумом
print(max**2)     #вывод квадрата максимального числа

Задача 3.
x=int(input())     #ввод первого числа
y=int(input())     #ввод второго числа
if (x+y)%2==0:   #если сумма четная,т.е. остаток от деления на 2 равен 0
    print(x*y)        #вывести их произведение
else:                   #иначе
    print(x/y)         #вывести частное от деления первого числа на второе
pozhidaevgv
Procedure GetAB(x: integer; var a: integer; var b: integer);
begin
    a := 0;
    b := 1;
    while x > 0 do
    begin
        a := a + 1;
        b := b * (x mod 100);
        x := x div 100;
    end;
end;

var
    x, a, b: integer;

begin
    for x := 10000 to 2000000000 do
    begin
        GetAB(x, a, b);
        if (a = 3) and (b = 18) then
            Println(a, b, x);
    end;
end.

выдает такие значения
3 18 10118
3 18 10209
3 18 10306
3 18 10603
3 18 10902
3 18 11801
3 18 20109
3 18 20303
3 18 20901
3 18 30106
3 18 30203
3 18 30302
3 18 30601
3 18 60103
3 18 60301
3 18 90102
3 18 90201
3 18 180101

Выделенное наибольшее
Анатольевич-Митюшин

A=5

Объяснение:

74 mod A = 4

Остаток меньше делителя, поэтому A>=5

Подставляем 5 в основание системы счисления и проверяем результат.

74/5=14 остаток   4

14/5=2 остаток   4

2/5=0 остаток   2

Десятичное число 27 в пятиричной системе счисления записывается как 244. Следовательно A=5

Как решать подобные задачи.

1.

Согласно правилу перевода десятичного числа M в A-ричную систему, в последний разряд A-ричного числа записывается остаток от M/A. То есть M mod A = R, где R – значение последнего разряда A-ричного числа. Вспоминаем что остаток всегда меньше делителя, поэтому A>=R+1. В рассматриваемой задаче A>=5.

Определение нижней границы значения A, позволяет сузить поиск. В рассматриваемой задаче мы с первого раза вышли на верное значение, но так бывает не всегда.

2.

Представим число M в следующем виде: M=A*B+R, где A - основание системы счисления, а R – остаток. В рассматриваемой задаче эта запись приобретает следующий вид: 74=A*B+4 или 70=A*B. То есть необходимо найти такие целые числа, чтобы их произведение равнялось 70.

Рассмотрим варианты A*B.

1*70

2*35

5*14

7*10

В первом пункте мы выяснили, что A>=5, поэтому первые два варианта отпадают. Остаются варианты 5*14 и 7*10.

Проверив истинность высказываний 74 mod 5 = 4 и 74 mod 7 = 4, убеждаемся, что A=5.

3.

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

Обозначим разрядность через N.

N= [L]+1 , где L – значение логарифма от M по основанию A. Квадратные скобки – обозначают целое значение.

В рассматриваемой задаче, число M в A-ричной системе счисления трехзначное. То есть N=3.

3=[L]+1

[L]=2

Для проверки разрядности значения A*B в системе счисления A, следует проверить истинность выражения N= [L]+1.

В рассматриваемой задаче, это условие соблюдается только когда A принимает значения 5, 6, 7 или 8. Только при таких значениях A, число M в A-ричной системе счисления A будет трехзначным.  

Числа 6 и 8 не подходят, поскольку второй множитель B также должен быть целочисленным.

Остаются числа 5 и 7.

Проведя проверку на остаток от деления 74 mod 5 = 4 и 74 mod 7 = 4, получаем искомое значение A=5.

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

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

Язык - phyton. решите, , ! 1. ввести число. если оно неотрицательно, то вычесть из него 10, в противном случае прибавить к нему 10. 2. ввести два числа. сравнить их. максимальное число возвести в квадрат. 3. ввести два числа. если сумма этих чисел четная, то вывести на экран произведение этих чисел, иначе вывести на экран их частное.
Ваше имя (никнейм)*
Email*
Комментарий*