Submission #55331433
Source Code Expand
Copy
USING: kernel math sequences io ;! ----------- 3個の数値の和を求める -----------0 ! 和となる数値をスタックに積む3 [ ! times により3回繰り返す0 ! 1個の数値を読み込んだ結果となる数値をスタックに積む[ ! 1個の数値の読み込みを行う (loop)read1 ! 1文字読み込むdup 48 >= ! 読み込んだ文字が '0' 以上かを調べるover 58 < ! 読み込んだ文字が '9' 以下かを調べる ('0' 以上かがあるので、over を用いる)and ! 2個の判定を組み合わせ、読み込んだ文字が数字かを調べる[ ! 読み込んだ文字が数字である (t) 場合、以下の処理を行う48 - ! 読み込んだ文字(コード)から '0' を引き、数値に変換するswap 10 * + ! これまでの変換結果の10倍に、変換した数値を足す (変換結果を更新する)t ! 変換のループを続行する][ ! 読み込んだ文字が数字でない (f) 場合、以下の処理を行うdrop ! 読み込んだ文字を捨てるf ! 変換のループを終了する]
USING: kernel math sequences io ;
! ----------- 3個の数値の和を求める -----------
0 ! 和となる数値をスタックに積む
3 [ ! times により3回繰り返す
0 ! 1個の数値を読み込んだ結果となる数値をスタックに積む
[ ! 1個の数値の読み込みを行う (loop)
read1 ! 1文字読み込む
dup 48 >= ! 読み込んだ文字が '0' 以上かを調べる
over 58 < ! 読み込んだ文字が '9' 以下かを調べる ('0' 以上かがあるので、over を用いる)
and ! 2個の判定を組み合わせ、読み込んだ文字が数字かを調べる
[ ! 読み込んだ文字が数字である (t) 場合、以下の処理を行う
48 - ! 読み込んだ文字(コード)から '0' を引き、数値に変換する
swap 10 * + ! これまでの変換結果の10倍に、変換した数値を足す (変換結果を更新する)
t ! 変換のループを続行する
]
[ ! 読み込んだ文字が数字でない (f) 場合、以下の処理を行う
drop ! 読み込んだ文字を捨てる
f ! 変換のループを終了する
]
if ! 読み込んだ文字が数字かによって、上記の処理を行う
] loop
+ ! 読み込んだ数値を和に加算する
] times
! ----------- 求めた和を十進数で表現し、出力する -----------
{ } swap ! 和(数値)の後ろに、十進数表現を格納する配列を置く
[ ! 和(数値)を十進数に変換する (loop)
10 /mod ! 和(数値)を10で割り、商と余りを求める
48 + ! 求めた余りに '0' を足し、数字に変換する
! この時点でのスタック:配列 商 数字
swapd ! 数字を配列に追加するため、配列を移動する
! この時点でのスタック:商 配列 数字
prefix ! 数字を配列の先頭に追加する
! この時点でのスタック:商 配列
swap ! 配列の位置を戻す
! この時点でのスタック:配列 商
dup 0 = not ! 残っている商が0でないかを判定する (0でない間ループを続ける)
] loop
drop ! 商 (0) を捨てる
write ! 変換結果の配列を出力する
! ----------- 値と文字列の間の空白を出力する -----------
32 write1 ! 数値と文字列の間の空白を出力する
! ----------- 文字列 s を出力する -----------
[ ! 文字列の出力を行う (loop)
read1 ! 1文字読み込む
dup write1 ! 読み込んだ文字を確認できるようにコピーし、出力する
10 = not ! 読み込んだ文字が '\n' かを判定する ('\n' でない間ループを続ける)
] loop
Submission Info
| Submission Time | |
|---|---|
| Task | PracticeA - Welcome to AtCoder |
| User | mikecat |
| Language | Factor (Factor 0.98) |
| Score | 100 |
| Code Size | 3153 Byte |
| Status | AC |
| Exec Time | 458 ms |
| Memory | 245068 KB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 00_rnd_01.txt, 00_rnd_02.txt, 00_rnd_03.txt, 00_rnd_04.txt, 00_rnd_05.txt, 00_sample_1.txt, 00_sample_2.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_rnd_01.txt | AC | 458 ms | 245068 KB |
| 00_rnd_02.txt | AC | 165 ms | 132000 KB |
| 00_rnd_03.txt | AC | 142 ms | 131892 KB |
| 00_rnd_04.txt | AC | 185 ms | 131808 KB |
| 00_rnd_05.txt | AC | 155 ms | 131960 KB |
| 00_sample_1.txt | AC | 177 ms | 131748 KB |
| 00_sample_2.txt | AC | 172 ms | 131884 KB |