Задача 6. Таблица за умножение
Loading...
kirilof93 avatar kirilof93 1 Точки

Python - Multiply table

Здравейте, за пореден път решавам задача вярно, с точните аутпути от условието, и въпреки това получавам (в случая 0т.) непълен брой точки от Джъдж системата! Някой може ли да ми каже защо на този работещ код не ми дава никакви точки?

n = int(input())

for x3 in range(1, n % 10 + 1):
    if x3 <= n / 10:
        for x2 in range(1, 3):
            if x2 <= n / 100:
                for x1 in range(1, 4):
                    if x1 <= n % 10:
                        result = x1 * x2 * x3
                    if x3 * x2 * x1 == result:
                        print(f"{x3} * {x2} * {x1} = {result};")

 

 

Задача 6. Таблица за умножение

Най-малкият син на сем. Иванови все още не знае таблицата за умножение. Веднага след коледните празници, той ще има контролно и вие трябва да му помогнете да я научи. Вашата задача е да съставите програма, в която се въвежда цяло трицифрено число, и се извежда таблицата за умножение. Поради особености на вашата програма вземаме цифрите на въведеното число в обратен ред. Максималната стойност на множителите е определена от всяка една от 3-те цифри на въведеното число.

Вход

Входът е цяло трицифрено число в интервала [111…999].

Изход

Да се отпечатат на конзолата няколко на брой реда в следния формат:

{първата цифра} * {втората цифра} * {третата цифра} = {резултатът от умножението на трите цифри}

Първата, втората и третата цифра не могат да бъдат отрицателно или равно на 0 число!

 

 

Примерен вход и изход

Вход

Изход

Обяснения

Вход

Изход

324

1 * 1 * 1 = 1;

1 * 1 * 2 = 2;

1 * 1 * 3 = 3;

1 * 2 * 1 = 2;

1 * 2 * 2 = 4;

1 * 2 * 3 = 6;

2 * 1 * 1 = 2;

2 * 1 * 2 = 4;

2 * 1 * 3 = 6;

2 * 2 * 1 = 4;

2 * 2 * 2 = 8;

2 * 2 * 3 = 12;

3 * 1 * 1 = 3;

3 * 1 * 2 = 6;

3 * 1 * 3 = 9;

3 * 2 * 1 = 6;

3 * 2 * 2 = 12;

3 * 2 * 3 = 18;

4 * 1 * 1 = 4;

4 * 1 * 2 = 8;

4 * 1 * 3 = 12;

4 * 2 * 1 = 8;

4 * 2 * 2 = 16;

4 * 2 * 3 = 24;

Вземаме цифрите от числото както следва: неговата последна за първо, средната за второ, и първата за трето число.

222

1 * 1 * 1 = 1;

1 * 1 * 2 = 2;

1 * 2 * 1 = 2;

1 * 2 * 2 = 4;

2 * 1 * 1 = 2;

2 * 1 * 2 = 4;

2 * 2 * 1 = 4;

2 * 2 * 2 = 8;

0
Python
DeveloperEnthusiast avatar DeveloperEnthusiast 302 Точки

Just in case, че имаш подобна задача на тази другата седмица, искам да ти кажа, че можеш да си направиш числото на стринг и да му вземеш индексите, т.е.

number = int(input())
num_str = str(number)

for first_digit in range(1, int(num_str[2]) + 1):
    for second_digit in range(1, int(num_str[1]) + 1):
        for third_digit in range(1, int(num_str[0]) + 1):
            result = first_digit * second_digit * third_digit
            print(f'{first_digit} * {second_digit} * {third_digit} = {result};')

а може и с математическите сложнотии и щуротии... да делиш числото модулно на 10, па на 100 и т.н. за там която цифра ти трябва. Успех smiley

 

п.с. по никакъв начин не искам да обиждам или засягам колегата, който ти е отговорил преди мен

0
23/02/2020 18:58:23