Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Roman Figure"
https://onlinejudge.u-aizu.ac.jp/problems/0039
・ローマ数字
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume0 - 0039 : Roman Figure
/* Aizu Online Judge in C++ #Volume0 - 0039 : Roman Figure https://onlinejudge.u-aizu.ac.jp/problems/0039 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll a,m,i; ll n[256]; n['I']=1; n['V']=5; n['X']=10; n['L']=50; n['C']=100; n['D']=500; n['M']=1000; char s[128]; while(cin>>s){ for(a=m=0,i=strlen(s)-1;i>=0;i--){ if(n[s[i]]<m){ a-=n[s[i]]; }else{ a+=m=n[s[i]]; } } cout<<a<<endl; } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/