法演算
Posted feedbacks - C#
こんな感じで。とりあえず逆ポーランドで式を渡します。
>hoo 10 1 2 +
-> 3
>hoo 10 7 3 +
-> 0
>hoo 10 11 12 +
-> 3
>hoo 10 3 2 -
-> 1
>hoo 10 2 3 -
-> 9
>hoo 10 2 3 *
-> 6
>hoo 10 11 12 *
-> 2
>hoo 10 18 39 *
-> 2
>hoo 10 1 2 +
-> 3
>hoo 10 7 3 +
-> 0
>hoo 10 11 12 +
-> 3
>hoo 10 3 2 -
-> 1
>hoo 10 2 3 -
-> 9
>hoo 10 2 3 *
-> 6
>hoo 10 11 12 *
-> 2
>hoo 10 18 39 *
-> 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System;
using System.Collections.Generic;
static class Program {
static void Main(string[] args) {
int mod = int.Parse(args[0]);
Stack<int> stack = new Stack<int>();
for(int i = 1; i < args.Length; i++) {
int value = 0;
if (args[i] == "+" || args[i] == "-" || args[i] == "*") {
int y = stack.Pop();
int x = stack.Pop();
if (args[i] == "+") value = x + y;
else if (args[i] == "-") value = x - y;
else if (args[i] == "*") value = x * y;
}
else {
value = int.Parse(args[i]);
}
stack.Push((mod + value % mod) % mod);
}
Console.WriteLine("-> {0}", stack.Pop());
}
}
|


ihag
#4808()
Rating2/2=1.00
ここでいう法演算とは,与えられた数(ここでは「法」と言います)で剰余をとりながら行う計算のことです.たとえば,法が10である場合,以下のように計算します.
式と法を与えたときに,このような法演算を行い,計算結果を表示するプログラムを作成してください.
注意点
プログラムの出力として,計算結果を表示して下さい.
[ reply ]