Bài tập  /  Bài đang cần trả lời

Viết chương trình chuyển số tụ nhiên sang số la mã

viết chương trình chuyển số tụ nhiên sang số la mã
NNLT pascal
1 Xem trả lời
Hỏi chi tiết
362
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Dưới đây là một ví dụ về cách chuyển đổi số tự nhiên sang số La Mã trong ngôn ngữ Pascal:

```pascal
program ConvertToRoman;
var
num: integer;
roman: string;
begin
writeln('Nhap so tu nhien: ');
readln(num);

roman := '';

while num >= 1000 do
begin
roman := roman + 'M';
num := num - 1000;
end;

if num >= 900 then
begin
roman := roman + 'CM';
num := num - 900;
end;

while num >= 500 do
begin
roman := roman + 'D';
num := num - 500;
end;

if num >= 400 then
begin
roman := roman + 'CD';
num := num - 400;
end;

while num >= 100 do
begin
roman := roman + 'C';
num := num - 100;
end;

if num >= 90 then
begin
roman := roman + 'XC';
num := num - 90;
end;

while num >= 50 do
begin
roman := roman + 'L';
num := num - 50;
end;

if num >= 40 then
begin
roman := roman + 'XL';
num := num - 40;
end;

while num >= 10 do
begin
roman := roman + 'X';
num := num - 10;
end;

if num >= 9 then
begin
roman := roman + 'IX';
num := num - 9;
end;

while num >= 5 do
begin
roman := roman + 'V';
num := num - 5;
end;

if num >= 4 then
begin
roman := roman + 'IV';
num := num - 4;
end;

while num >= 1 do
begin
roman := roman + 'I';
num := num - 1;
end;

writeln('So La Ma tuong ung: ', roman);
readln;
end.
```

Chương trình trên sẽ yêu cầu người dùng nhập một số tự nhiên và sau đó chuyển đổi số đó thành số La Mã. Chương trình sử dụng một vòng lặp để kiểm tra từng giá trị của số và thêm các ký tự tương ứng vào chuỗi số La Mã. Cuối cùng, chương trình sẽ in ra số La Mã tương ứng.
0
0
Dannz
22/11/2023 21:37:30
program IntegerToRoman;
uses sysutils;
var
    num: integer;

function intToRoman(num: integer): string;
var
    val: array[1..13] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1);
    syb: array[1..13] of string = ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I');
    roman: string;
    i: integer;
begin
    roman := '';
    i := 1;
    while (num > 0) do
    begin
        while (num >= val[i]) do
        begin
            num := num - val[i];
            roman := roman + syb[i];
        end;
        i := i + 1;
    end;
    intToRoman := roman;
end;

begin
    write('Enter a number: ');
    readln(num);
    writeln('Roman numeral: ', intToRoman(num));
end.

 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×