- 转罗马数字
- 2024-06-17 10:00:12 @
//4000~4999怎么处理啊?
#include<bits/stdc++.h>
using namespace std;
int a[8]={0,1,5,10,50,100,500,1000};
char c[8]={0,'i','v','x','l','c','d','m'};
int main()
{
int x;cin>>x;
for(int i=7;i>=1;i--)
{
if(x>=a[i])
{
while(x>0)
{
int at=a[i];
char ct=c[i];
int xc=i;
while(x/at<4&&x>0)
{
for(int j=1;j<=x/at;j++)
cout<<ct;
x%=at;
for(int j=i-1;j>=1;j--)
if(x>=a[j])
{
at=a[j];
ct=c[j];
xc=j;
break;
}
}
if(x/at==4)
{
cout<<c[xc]<<c[xc+1];
x%=at;
for(int j=i-1;j>=1;j--)
if(x>=a[j])
{
at=a[j];
ct=c[j];
xc=j;
break;
}
}
}
break;
}
}
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 2719
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 3
- 已通过
- 1
- 通过率
- 33%
- 上传者