0

我想知道如何找到满足两个 mod 条件的最小整数“x”。

    x%%7 == 1
    x%%10 == 2

我试图在函数中使用 for/while 循环,就像没有这样的运气:

  min.integer <- function(x) {
    y = c(1:500000)
    for (i in y) {
      if (x%%10 == 2) {
        print(x)
      } else {
        break
      }     
    }
  }

这是解决这个问题的最佳方法吗?谢谢!

4

2 回答 2

0

这可能会有所帮助:

twoModsSatisfied <- function(
    mod1
    , equals1
    , mod2
    , equals2
    , howMany # how many different values do you want to try
){
    x <- (0:howMany) * mod1 # all these values will satify the 1st condition
    x[which((x + equals1) %% mod2 == equals2)][1] + equals1
}

twoModsSatisfied(
    7
    , 1
    , 10
    , 2
    , 100
)

[1]确保您只获得满足条件的第一个值。0:howMany确保您得到正确的结果twoModsSatisfied(7,2,10,2,100)。该函数不检查请求是否不可能(例如twoModsSatisfied(7,8,10,2,100)),但这也可以使用if语句轻松完成。

于 2018-02-05T22:57:41.237 回答
0

一个简单的while循环

m=n=0
x=1
while(!(m==1&n==2)){
  x=x+1
  m=x%%7
  n=x%%10
}
x
22
于 2018-02-05T21:30:42.047 回答