#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 你也可能在某些文獻的大綱或者目錄上看到它們。這是乙個...