結果
| 問題 |
No.405 ローマ数字の腕時計
|
| ユーザー |
monburan_0401
|
| 提出日時 | 2018-09-11 21:54:51 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 2,000 ms |
| コード長 | 947 bytes |
| コンパイル時間 | 281 ms |
| コンパイル使用メモリ | 29,696 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-06 19:20:30 |
| 合計ジャッジ時間 | 963 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 27 |
ソースコード
#include <stdio.h>
int main(void){
char S1[4];
int s1 = 0; // S1を変換したもの
int T;
scanf("%s",S1);
scanf("%d",&T);
// 入力されたS1を数字に変換 ??9の場合は特別?
for(int i = 0; S1[i] != 0; i++){
if(S1[i] == 'I'){
if(S1[i+1] == 'X'){
s1 = -1;
}else{
s1 += 1;
}
}else if(S1[i] == 'V'){
s1 += 5;
}else if(S1[i] == 'X'){
s1 += 10;
}
}
// check ok
//printf("%d\n",s1);
// s1 に T%12 を足し、1〜12におさめる
s1 += (T % 12);
// check ok
//printf("修正前は%d\n",s1);
if(s1 > 12){
s1 -= 12;
}else if(s1 <= 0){
s1 += 12;
}
// check ok
//printf("修正後は%d\n",s1);
// 1から4、5から8、9から12で出力
if(s1 > 8){
s1 -= 10;
// 9の時だけ特別
if(s1 == -1){
printf("I");
}
printf("X");
}else if(s1 > 4){
s1 -= 5;
printf("V");
}
for(int j = 0; j < s1; j++){
printf("I");
}
printf("\n");
return 0;
}
monburan_0401