Упражнения на С: преобразование данного римского числа в целое число
Программирование на C: упражнение 7 с решением
Напишите C-программу для преобразования заданного римского числа в целое число.
Римские цифры представлены семью различными символами: I, V, X, L, C, D и M. Значение символа Я 1 V 5 X 10 Л 50 С 100 D 500 М 1000
Код C:
#include <stdio.h>
#include <stdlib.h>
static int roman_to_integer(char c)
{
switch(c) {
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
case 'L':
return 50;
case 'C':
return 100;
case 'D':
return 500;
case 'M':
return 1000;
default:
return 0;
}
}
int roman_to_int (char *s)
{
int i, int_num = roman_to_integer(s[0]);
for (i = 1; s[i] !='\0'; i++) {
int prev_num = roman_to_integer(s[i - 1]);
int cur_num = roman_to_integer(s[i]);
if (prev_num < cur_num) {
int_num = int_num - prev_num + (cur_num - prev_num);
} else {
int_num += cur_num;
}
}
return int_num;
}
int main(void)
{
char *str1 ="XIV";
printf("Original Roman number: %s", str1);
printf("\nRoman to integer: %d", roman_to_int(str1));
return 0;
}
Пример вывода:
Оригинальный римский номер: XIV Роман до целого числа: 14
Иллюстрированная презентация:
Блок - схема:
Решение
Внесите свой код и комментарии через Disqus.
Previous: написать программу на C для преобразования заданного целого числа в римское число.
Далее: Напишите программу на C, чтобы найти все уникальные триплеты в данном массиве целых чисел, сумма которых равна нулю.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code