library(gmp)
Solve <- function(p, n, s)
{
P <- p[-1] - p[1]
g <- as.integer(gcdex(P[1], P[2]))
a <- (s - n * p[1]) * g[-1] / g[1]
b <- c(P[2], -P[1]) / g[1]
if (any
(a
!= floor(a
))) return(cat
("解なし\n\n"))
A <- c(a, sum(a))
B <- c(b, sum(b))
c <- -A / B
d <- (n - A) / B
tmin <- ceiling(max(pmin(c, d)))
tmax
<- floor(min
(pmax
(c
, d
))) if (tmin > tmax) return(cat("解なし\n\n"))
for (t in tmin:tmax) {
m <- a + b * t
m <- c(n - sum(m), m)
cat
(paste
(sprintf("%d円×%d", p
, m
), collapse
= " + "), " = ", s
, "円\n", sep
= "") }
cat("\n")
}
Solve(c(460, 580, 600), 10, 5360)
Solve(c(460, 540, 580), 10, 5360)
Solve(c(460, 520, 580), 10, 5360)
bGlicmFyeShnbXApCgpTb2x2ZSA8LSBmdW5jdGlvbihwLCBuLCBzKQp7CiAgICBQIDwtIHBbLTFdIC0gcFsxXQogICAgZyA8LSBhcy5pbnRlZ2VyKGdjZGV4KFBbMV0sIFBbMl0pKQogICAgYSA8LSAocyAtIG4gKiBwWzFdKSAqIGdbLTFdIC8gZ1sxXQogICAgYiA8LSBjKFBbMl0sIC1QWzFdKSAvIGdbMV0KICAgIGlmIChhbnkoYSAhPSBmbG9vcihhKSkpIHJldHVybihjYXQoIuino+OBquOBl1xuXG4iKSkKCiAgICBBIDwtIGMoYSwgc3VtKGEpKQogICAgQiA8LSBjKGIsIHN1bShiKSkKICAgIGMgPC0gLUEgLyBCCQogICAgZCA8LSAobiAtIEEpIC8gQgogICAgdG1pbiA8LSBjZWlsaW5nKG1heChwbWluKGMsIGQpKSkKICAgIHRtYXggPC0gZmxvb3IobWluKHBtYXgoYywgZCkpKQogICAgaWYgKHRtaW4gPiB0bWF4KSByZXR1cm4oY2F0KCLop6PjgarjgZdcblxuIikpCgogICAgZm9yICh0IGluIHRtaW46dG1heCkgewogICAgICAgIG0gPC0gYSArIGIgKiB0CiAgICAgICAgbSA8LSBjKG4gLSBzdW0obSksIG0pCiAgICAgICAgY2F0KHBhc3RlKHNwcmludGYoIiVk5YaGw5clZCIsIHAsIG0pLCBjb2xsYXBzZSA9ICIgKyAiKSwgIiA9ICIsIHMsICLlhoZcbiIsIHNlcCA9ICIiKQogICAgfQogICAgY2F0KCJcbiIpCn0KClNvbHZlKGMoNDYwLCA1ODAsIDYwMCksIDEwLCA1MzYwKQpTb2x2ZShjKDQ2MCwgNTQwLCA1ODApLCAxMCwgNTM2MCkKU29sdmUoYyg0NjAsIDUyMCwgNTgwKSwgMTAsIDUzNjAp