sdut oj 2216 CIVIC DILL MIX
发布日期:2021-08-14 10:59:20 浏览次数:2 分类:技术文章

本文共 1273 字,大约阅读时间需要 4 分钟。

算是模拟题吧,就是给你几个罗马数字表示的数,求他们的和然后再用罗马数字表示输出

罗马数字表示的时候有些规则注意就是了。其实也是很简单的

思路:先把 1~10,10~100,100~1000 这27个整数用罗马表示写到三个字符数组里,然后把给定的罗马数转换为我们的十进制数,相加后,再把这些数转换成罗马数输出就行了

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 char str1[][10]={
"","I","II","III","IV","V","VI","VII","VIII","IX"}; 7 char str10[][10]={
"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"}; 8 char str100[][10]={
"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"}; 9 #define N 5010 10 int chang(char s[]) 11 {
12 int len=strlen(s)-1; 13 int temp=0,ans=0; 14 int sum=0; 15 while(len>=0) 16 {
17 switch(s[len]) 18 {
19 case 'I':temp=1;break; 20 case 'V':temp=5;break; 21 case 'X':temp=10;break; 22 case 'L':temp=50;break; 23 case 'C':temp=100;break; 24 case 'D':temp=500;break; 25 case 'M':temp=1000;break; 26 } 27 if(temp
>t,t) 64 {
65 ++cs; 66 int ans=0; 67 for(i=0;i
>sbr; 70 ans+=chang(sbr); 71 } 72 cat(cs,1); 73 cat(ans,0); 74 } 75 return 0; 76 }

 

转载于:https://www.cnblogs.com/fxh19911107/archive/2012/03/18/2404697.html

转载地址:https://blog.csdn.net/weixin_30719711/article/details/98310402 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【POJ3714】Raid
下一篇:[bzoj省选十连测推广赛2]T2七彩树

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月10日 21时10分17秒