羅馬數字求解

2021-06-14 19:25:41 字數 752 閱讀 3159

#include 

#include 

int main()

int n,i,s,k,sum;

char a[3000];

while(scanf("%s",a)!=eof)

n=strlen(a);

sum=0;

k=1000;

for(i=0;iswitch(a[i])

case 'm':s=1000;break;

case 'd':s=500;break;

case 'c':s=100;break;

case 'l':s=50;break;

case 'x':s=10;break;

case 'v':s=5;break;

case 'i':s=1;break;

if(ksum=sum+s-2*k;

else

sum=sum+s;

k=s;

printf("%d\n",sum);

return 0;

1.羅馬數字,這個題的重點是判斷第

i項和第

i+項的大小,如果

i+1比

i小的話,應該直接相加,而

i+1比

i大的話,應該減去

i的兩倍,同時加上

i+1,就相當於後面的數比左邊的大,則用右邊的數減去左邊的數,但因為之前已經加過一次,所以要減兩次。

2.利用

switch case 

解決 

羅馬數字轉換

class solution object def romantoint self,s type s str rtype int 使用整數轉羅馬數的兩個列表 num tuple 1000,500,100,50,10,5,1 roman tuple m d c l x v i 使用dict和zip方法...

羅馬數字轉化

先看位置計數的定義 一種表達數字的系統,數字按照順序排列 每個數字有乙個位值,數字的值是每個數字和位值的乘積之和。電腦科學導論 p25 羅馬數字計數法 相同的數字連寫,所表示的數等於這些數字相加得到的數,如 3 小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數,如 8 12 小的數字 限...

羅馬數字轉換程式

在一本書裡看到一段羅馬數字的程式,需求如下,自己試著用python和erlang各寫了一遍,感覺有些地方還是不太舒服,大家看看這個程式還能怎麼改改更好 或者在某圖書館或某大學的貢獻牆上看到它們 成立於mdcccl viii 而不是 成立於1888 你也可能在某些文獻的大綱或者目錄上看到它們。這是乙個...