【问题标题】:Find two numbers which are divisible without remainder [closed]找到两个可整除而没有余数的数字[关闭]
【发布时间】:2011-05-01 13:05:33
【问题描述】:

数字是随机生成的。在规定范围内。例如,是两个数:5和10,那么10除5。如果是5和2,则不除。 2 需要减少 1 或 5 需要增加 1。告诉我一个快速算法?

【问题讨论】:

  • 当你说“需要减少 1 或 5 增加 1 所需的 2”是什么意思

标签: c# algorithm numbers


【解决方案1】:
1. Let A is greater and B is smaller
2. Set M = (A % B)
3. If M == 0, You're done..
4. Else Adjust A  either by adding, A = A + B - M
5.               or by subtracting, A = A - M

【讨论】:

    【解决方案2】:

    如果b 除以a 没有余数,a%b==0 为真

    【讨论】:

    • 如果b不除a,他需要调整它们直到没有余数。
    • 是的,但不是被问到的问题。
    【解决方案3】:
    if(!(temp1 % temp2))) 
        temp1= temp1 + (temp1%temp2)
    else 
       tadaaaaa :)
    

    【讨论】:

      【解决方案4】:
      if (val1 > val2) { 
         rem = val1 % val2 ;
         if (rem == 0) you're done
         otherwise required_addition = val2 + rem
      } else if (val1 < val2) { 
          required_addition = val2 - val1;
      } else {
          they are the same; you are done;
      }
      

      【讨论】:

      • required_addition 是做什么的?
      • @Hippo,这是一个可以被 val1 整除的新数字。
      • @AtoMerZ:如果val1 是 4,val2 是 10,required_addition 将是 10+4=14,不能被 4 整除。
      • val1 可以被 val2 + required_addition 整除。我认为这就是 OP 想要的。
      • @AtoMerZ,不正确。例如 21 和 5,余数等于 1。因此,5 + 1 = 6,但 21 不能除以 6。
      【解决方案5】:

      与使用除法相比,构造一对可以被除而没有余数的数字会更容易。随机选择第一个数字a,然后随机选择另一个数字b,然后设置c = a*b

      【讨论】:

        猜你喜欢
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多