Sonya1233210
29.09.2020 11:29

В двух глобальных переменных one, two находятся два натуральных числа: первое слагаемое и второе слагаемое. Напишите функцию roman(), которая считает их сумму и записывает ее в глобальную переменную three, переводит каждое слагаемое и сумму в римскую запись и печатает их, как показано в примере.

Формат ввода

one = 5

two = 4

roman()

Формат вывода

V + IV = IX

вот мой код, но вылазит ошибка - Глобальная переменная three не равна сумме one и two

Как исправить?

CONV_TABLE = ((1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'),

(100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'),

(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I'))

def arab_to_roman(number):

if number <= 0:

return ''

ret = ''

for arab, roman in CONV_TABLE:

while number >= arab:

ret += roman

number -= arab

return ret

def roman_to_arab(txt):

txt = txt.upper()

ret = 0

for arab, roman in CONV_TABLE:

while txt.startswith(roman):

ret += arab

txt = txt[len(roman):]

return ret

def roman():

global one

global two

global three

three = '{} + {} = {}'.format(arab_to_roman(one), arab_to_roman(two), arab_to_roman(one + two))

print(three)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Пава1305
13.01.2020 03:35

Привет, код ниже, для справки по функциям советую посетить MSDN.
Если остаются вопросы так же есть хороший сайт как METANIT, там ты можешь найти простые примеры и простую документацию.
Если хочется проверить работаю кода, то есть прекрасный ресурс как Repl It.
Если есть вопросы, пиши в комментариях. За дополнительной информацией пиши в ЛС.

за отметку "Лучшее решение" и нажатую кнопочку и у меня в профиле.
Так же в моем профиле вы можете найти полезные ссылки на ресурсы описанные выше.



using System;

class MainClass {
  public static int (int[] array)
  {
    int result = 1;
   
    foreach (int element in array)
    {
      if (0 > element)
      {
        result *= element;
      }
    }
   
    return result;
  }

  static void Main()
  {
    Console.WriteLine("Please, enter length of array: ");
    int sizeOfArray = Convert.ToInt32(Console.ReadLine());
   
    int[] array = new int[sizeOfArray];
   
    for (int i = 0; i < sizeOfArray; ++i)
    {
      Console.WriteLine("Please, enter array entry: ");
      array[i] = Convert.ToInt32(Console.ReadLine());
    }
   
    int productOfNegativeNumbers = (array);
    Console.WriteLine("Product of negative numbers is: {0}", productOfNegativeNumbers);
  }
}
0,0(0 оценок)
Ответ:
volkovaw
09.01.2023 07:29

70, 35, 43, 132, 121, 11, 60, 64, 24, 31

Объяснение:

1) Изначально s = 0, затем на каждой из 12 – 6 + 1 = 7 итераций к ней прибавляется 10, итого получится 70

2) Аналогично, s = 0 + 7 * (8 – 3) = 35

3) Итерация с i = 1: k = 2 * 4 + 1 = 9. Итерация с i = 2: k = 2 * 9 + 2 = 20. Итерация с i = 3: k = 2 * 20 + 3 = 43.

4) s = 0 + 12 * 11 = 132  

5) s = 0 + 11 * (12 – 1) = 121

6) u = 26 – 1 – 2 – 3 – 4 – 5 = 11

7) s = 4 + 5 + … + 11 = 60

8) s = 1 * 2 * 2 * … * 2 (8 – 3 + 1 раз) = 64

9) y = 0 + 4 * 1 + 4 * 2 + 4 * 3 = 24

10) s = 3 + 2 * 2 + 2 * 3 + 2 * 4 + 2 * 5 = 31

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота