Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ตัวเลขเป็นเลขโรมัน


เลขโรมันเป็นตัวเลขที่ไม่มีตำแหน่ง ตัวเลขบางตัวถูกนำมารวมกันเพื่อสร้างตัวเลขในเลขโรมัน ตัวอย่างเช่น ตัวเลข 75 สามารถแสดงเป็น 75 =50 + 10 + 10 + 5 ได้ ดังนั้นเลขโรมันจึงเป็น LXXV

ในปัญหานี้มีรูปแบบทศนิยมหนึ่งหมายเลข หน้าที่ของเราคือแปลงเป็นสตริงตัวเลขโรมัน

มีสัญลักษณ์และค่าต่างกันดังนี้

I
IV
V
IX
X
XL
L
XC
C
CD
D
CM

MMMM
V’
1
4
5
9
10
40
50
90
100
400
500
900
1000
4000
5000


เมื่อใช้ตารางนี้ เราสามารถค้นหาเลขโรมันของตัวเลขที่ระบุได้อย่างง่ายดาย

อินพุตและเอาต์พุต

Input:Decimal number:3569Output:The Roman เทียบเท่ากับ 3569 คือ:MMMDLXIX

อัลกอริทึม

decToRoman(nuList, num)

ป้อนข้อมูล: รายการตัวเลขพร้อมค่า ตัวเลขที่จะแปลงเป็นโรมัน

ผลลัพธ์: เลขโรมันสำหรับตัวเลขที่กำหนด

เริ่มต้นถ้า num ≠ 0 แล้ว max :=รับค่าตัวเลขสูงสุด ไม่เกินจำนวนจะแสดง nuList[max].symbol num :=num – nuList[max].value decToRoman(nuList, num)End 

ตัวอย่าง

#includeใช้เนมสเปซ std;struct ตัวเลข { string sym; int val;};int maxNume (ตัวเลข nu [], int num) { ดัชนี int; for(int i =0; i<15; i++) //15 ตัวเลขในอาร์เรย์ if(nu[i].val<=num) index =i; //gretest ค่าดัชนีตัวเลข ไม่เกินดัชนีส่งคืนตัวเลข;} void decToRoman (ตัวเลข nu [], int num) { int max; ถ้า (num !=0) { max =maxNume (nu, num); ศาล <> หมายเลข; if(number>0 &&number <=5000) { //checking input number cout<<"เลขโรมันที่เทียบเท่ากับ " < 

ผลลัพธ์

ป้อนตัวเลขทศนิยม:3569ค่าเทียบเท่าโรมันของ 3569 คือ:MMMDLXIX