法演算
Posted feedbacks - Groovy
Evalを使用しました。 不正な文字列が与えられた場合のセキュリティには弱いですね。 この場合、なにかいい方法があるのでしょうか。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def calc( x, ho ){
x = x.replaceAll(/[0-9]+/, {
def num = it.toInteger()
seikika( num, ho ).toString()
})
seikika(new Eval().me(x), ho)
}
def seikika( num, ho ){
while(num < 0 ){
num += ho
}
num % ho
}
println calc("10 + 35", 10)
println calc("2 * 3", 10)
println calc("11 * 12", 10)
println calc("18 * 39", 10)
println calc("-13 * 11",7)
println calc("7 * 9",7)
println calc("3 * 4",7)
|


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