SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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ã.

test php

banquyen png
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 decimalValuesromanSymbols để lưu trữ giá trị và ký tự tương ứng của số La Mã.
  • Hàm convertToRoman lặp qua các giá trị của mảng decimalValues và 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ùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top