Chuyển đổi một số nguyên thành dạng số La Mã trong C
Trong lịch sử, hệ thống số La Mã đã được sử dụng rộng rãi trước khi hệ thống số hiện đại được phát triển. Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ C để chuyển đổi một số nguyên thành dạng số La Mã.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Chương trình trong ngôn ngữ C để chuyển đổi một số nguyên thành dạng số La Mã
Cách giải quyết:
Để chuyển đổi một số nguyên thành dạng số La Mã, chúng ta cần thực hiện các bước sau:
- Xác định các ký tự tương ứng với các giá trị của số La Mã.
- Lặp qua các giá trị của số và thêm các ký tự tương ứng vào chuỗi số La Mã.
- Trừ đi giá trị của số và lặp lại cho đến khi số bằng 0.
Hãy xem cách giải bài lập trình sau:
Bài viết này được đăng tại [free tuts .net]
File: decimal_to_roman.c
#include <stdio.h>
// Hàm chuyển đổi số nguyên thành số La Mã
void convertToRoman(int num) {
int decimalValues[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
char *romanSymbols[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
// Chuyển đổi số nguyên thành số La Mã
for (int i = 0; num > 0; i++) {
while (num >= decimalValues[i]) {
printf("%s", romanSymbols[i]);
num -= decimalValues[i];
}
}
}
int main() {
int number;
printf("freetuts.net");
printf("Nhap vao mot so nguyen: ");
scanf("%d", &number);
printf("So La Ma tuong ung la: ");
convertToRoman(number);
printf("\n");
return 0;
}
Kết quả:
Nhap vao mot so nguyen: 3549 So La Ma tuong ung la: MMMDXLIX
Giải thích :
- Trong code trên, mình đã sử dụng hai mảng
decimalValuesvàromanSymbolsđể lưu trữ giá trị và ký tự tương ứng của số La Mã. - Hàm
convertToRomanlặp qua các giá trị của mảngdecimalValuesvà thêm các ký tự tương ứng vào chuỗi số La Mã. - Kết quả cuối cùng là số La Mã tương ứng với số nguyên nhập vào.
Việc này giúp mình chuyển đổi một số nguyên thành dạng số La Mã một cách hiệu quả trong ngôn ngữ lập trình C.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng