ここで注目したいのは、「直前2つの数字で演算を行う」ということです。それと、もうひとつこの手の問題で気を遣いたいのが文字列と数字の変換です。演算子が入っている以上、入力はstring型やchar型配列など、文字列の形式で受け取るべきです。いうことは、数字も文字列として扱われてしまうということです。なにも考えずにキャストしてしまうと、とんでもない答えが返ってきてしまいます。53------------*/5と’5’は別物です。各文字や数字には、コンピュータで扱えるようにするために番号が割り当てられています。(int)’5’では、’5’に割り当てられた番号(ASCIIコード)を参照することになるのです。char型(の配列)で扱われている数字は、atoi(文字列)という関数を用いることで変換できます。‘0’といった具合に、’0’で引いても正しい結果になります。http://www12.plala.or.jp/mz80k2/electronics/ascii/ascii.html)。0;}もうひとつ、こちらは文字列の扱いがポイントになります。数式の書き換えこれを構文解析といっていいのかは微妙なところですが......まあ数式を受け取ってほげほげする問題なので広義の構文解析と言ってもいいでしょう。+と*が混ざった数式の中で、いくつの数字を書き換えれば結果が0になるか、という問題です。ここでも、文字列の扱いがポイントになります。数式自体はスペースなどで分割こそされていませんが、制約を見ると、与えられる数字がせいぜい1桁であることに気づくでしょう。先頭から1文字ずつ見ていけば大丈夫です。*で繋がった部分には、1つでも0があればその結果は0になります。+でつながっている数式はそれらすべてが0になる必要があります。まとめれば、数式を+がくるまで見ていき、それまでに0がなければanswer++するのを繰り返せばいいことになります。数式なのにその中身を計算する必要はまったくないのです。なんてレベルの計算をしてしまいかねません(実際私はそれでオーバーフローを起こしていて、WAが取れずハマっていました)。