C語言羅馬數字轉整數
阿新 • • 發佈:2021-04-24
LEETCODE13:
##C語言程式碼
#include<stdio.h>
int romanToInt(char * s)
{
int i=0,j=0,a[16]={0},sum=0; //整形陣列a用於記錄對應羅馬數字的整數,sum用於記錄羅馬數字代表的整數和
int L=0;//L用於記錄陣列的元素個數
for(i=0;s[i]!='\0';i++)
{
switch(s[i])
{
case 'I':{a[j++]=1;L++;break;}
case 'V':{a[j++]=5;L++;break;}
case 'X':{a[j++]=10;L++;break ;}
case 'L':{a[j++]=50;L++;break;}
case 'C':{a[j++]=100;L++;break;}
case 'D':{a[j++]=500;L++;break;}
case 'M':{a[j++]=1000;L++;break;}
default:break;
}
}
a[j]=0;
for(j=0;j<L;j++)
if(a[j]>=a[j+1]) sum+=a[j];
else sum-=a[j];
return sum;
}
//主函式用於除錯用
void main()
{
char s[15 ]={'M','M','M','D','C','C','C','L','X','X','X','V','I','I','I'};int a=0;
a=romanToInt(s);
printf("%d\n",a);
}
提交結果: