func main() var s: []char :: cui@input() var op: char :: '*' var num: int :: 0 var ans: int :: 0 for i(0, ^s) ; 太郎君の国では足し算と掛け算の記号が普通と逆なので注意。 if(i = ^s | s[i] = '*' | s[i] = '+') if(op = '*') do ans :+ num else do ans :* num end if if(ans > 10000) ; 「計算結果の値が、10,000を超えることはありません。」と書かれています。 ; 「計算途中で10,000を超えない」とは書かれていないので、例えば、 ; 「10000000000000000000+0*1」などの入力があり得ます。 ; 途中でオーバーフローしないようにansの値を小さくする必要があります。 do ans :: 0 end if if(i <> ^s) do op :: s[i] do num :: 0 end if else do num :* 10 do num :+ s[i] $ int - '0' $ int if(num > 10000) do num :: 0 end if end if end for do cui@print("\{ans}\n") end func