두 숫자의 배수의 합으로 n에 대해 가장 가까운 다음 숫자 찾기

면도칼

주어진 숫자 n에 대해 주어진 두 숫자 (a, b)와 n의 배수로 형성 될 수있는 다음으로 가장 가까운 숫자의 차이를 찾으십시오.

Example:
    n = 49, (a, b) = (13, 17) => Difference = 2
    Nearest number would be = 51 (3*17, 0*13)

    n = 16, (a, b) = (2 , 5) => Difference = 0
    Nearest number would be = 16 (2*5, 3*2)

    n = 25, (a, b) = (13, 17) => Difference = 1
    Nearest number would be = 26 (0*17, 2*13)

이 문제를 어떻게 해결합니까?

내가 쓴 것은 : (루비에서)

def find_next_num_diff(x,y,z)
  x, y = x > y ? [x, y] : [y, x]
  while(z%y > 0 && z >= x) do
    z -= x
  end
  if z%y == 0
    return 0
  else
    return [y-(z%y), x-z].min
  end
end

위의 코드는 마지막 종류의 예제에서는 작동하지 않습니다.

편집 : 음수 없음. 그리고 합계 만. 처음에 나는이에 대한 해결로이 문제를 생각 X & Y방정식 Xa + Yb >= nX, Y > 0

Spickermann

다음과 같이 시작하겠습니다.

def find_next_num_diff(n, a, b)
  multiples_of_a = (0..n+a-1).step(a).to_a
  multiples_of_b = (0..n+b-1).step(b).to_a

  multiples_of_a.product(multiples_of_b).map { |x, y| (n - (x + y)).abs }.min
end

find_next_num_diff(49, 13, 17)
#=> 2
find_next_num_diff(16, 2, 5)
#=> 0
find_next_num_diff(25, 13, 17)
#=> 1

또는 메모리에 데카르트 곱을 저장하지 않기 때문에 메모리가 덜 필요한 다음 구현을 사용할 수 있습니다.

def find_next_num_diff(n, a, b)
  a_multiples = (0..n+a-1).step(a)
  b_multiples = (0..n+b-1).step(b)

  smallest = Float::INFINITY

  a_multiples.each do |x|
    b_multiples.each do |y|
      smallest = [smallest, (n - (x + y)).abs].min
    end
  end

  smallest
end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

주어진 숫자에 대해 두 숫자의 가능한 모든 조합 / 분할 찾기

분류에서Dev

두 배열 내에서 가장 가까운 숫자 찾기

분류에서Dev

두 배열 목록에서 가장 가까운 숫자 찾기

분류에서Dev

이진 트리에서 두 숫자의 경로가 겹치는 숫자 찾기

분류에서Dev

배열에서 음수가 아닌 숫자의 최대 하위 배열 찾기

분류에서Dev

두 숫자를 기준으로 가장 가까운 숫자

분류에서Dev

SQL 서버 : 임의의 조합으로 2 개의 숫자를 추가해야합니다 (두 번 이상). 합계는 세 번째 숫자를 초과해야하지만 가장 가까운 숫자 여야합니다.

분류에서Dev

x 거리에서 주어진 숫자에 가장 가까운 n 개의 숫자를 찾으려면 어떻게해야합니까?

분류에서Dev

현재 숫자보다 큰 가장 가까운 숫자의 색인 찾기

분류에서Dev

목록의 목표 합계에 가장 가까운 숫자 찾기

분류에서Dev

정렬 된 배열에서 다른 두 숫자의 합인 숫자 찾기

분류에서Dev

배열에서 정수와 숫자 사이에 가장 가까운 두 개의 차이를 찾는 방법

분류에서Dev

정수 배열에서 가장 가까운 숫자 찾기

분류에서Dev

C 프로그래밍에서 5 개의 숫자 중 가장 큰 숫자와 두 번째로 큰 숫자 찾기

분류에서Dev

표의 각 행에 대해 다음으로 가장 가까운 등급 (점수)이있는 행 찾기

분류에서Dev

div의 숫자 그룹에서 가장 높은 숫자 찾기

분류에서Dev

원형 배열에서 가장 가까운 숫자 찾기

분류에서Dev

주어진 숫자에 가장 가까운 숫자 합계 찾기

분류에서Dev

두 3 자리 숫자의 곱에서 가장 큰 회문 찾기 (프로젝트 오일러 문제)

분류에서Dev

목록에서 두 번째로 큰 숫자와 가장 작은 숫자 찾기

분류에서Dev

첫 번째 열의 인덱스 값에 해당하는 두 번째 열에서 가장 작은 숫자 찾기

분류에서Dev

가장 큰 숫자와 두 번째로 큰 숫자 찾기

분류에서Dev

두 숫자의 합을 찾는 가장 효율적인 방법

분류에서Dev

사전에서 가장 가까운 숫자의 낮은 키 찾기

분류에서Dev

숫자 열에서 두 셀 사이의 특정 증가 찾기

분류에서Dev

배열에서 서로 다른 두 숫자의 합이 변수 숫자와 같은지 확인합니까?

분류에서Dev

numpy를 사용하여 두 개의 3 자리 숫자의 곱으로 만든 가장 큰 회문 찾기

분류에서Dev

Excel에서 음수로 가장 작은 두 숫자 반환

분류에서Dev

다른 변수의 모든 동일한 값에 대해 변수에서 숫자가 처음 나타날 때까지 개수 찾기

Related 관련 기사

  1. 1

    주어진 숫자에 대해 두 숫자의 가능한 모든 조합 / 분할 찾기

  2. 2

    두 배열 내에서 가장 가까운 숫자 찾기

  3. 3

    두 배열 목록에서 가장 가까운 숫자 찾기

  4. 4

    이진 트리에서 두 숫자의 경로가 겹치는 숫자 찾기

  5. 5

    배열에서 음수가 아닌 숫자의 최대 하위 배열 찾기

  6. 6

    두 숫자를 기준으로 가장 가까운 숫자

  7. 7

    SQL 서버 : 임의의 조합으로 2 개의 숫자를 추가해야합니다 (두 번 이상). 합계는 세 번째 숫자를 초과해야하지만 가장 가까운 숫자 여야합니다.

  8. 8

    x 거리에서 주어진 숫자에 가장 가까운 n 개의 숫자를 찾으려면 어떻게해야합니까?

  9. 9

    현재 숫자보다 큰 가장 가까운 숫자의 색인 찾기

  10. 10

    목록의 목표 합계에 가장 가까운 숫자 찾기

  11. 11

    정렬 된 배열에서 다른 두 숫자의 합인 숫자 찾기

  12. 12

    배열에서 정수와 숫자 사이에 가장 가까운 두 개의 차이를 찾는 방법

  13. 13

    정수 배열에서 가장 가까운 숫자 찾기

  14. 14

    C 프로그래밍에서 5 개의 숫자 중 가장 큰 숫자와 두 번째로 큰 숫자 찾기

  15. 15

    표의 각 행에 대해 다음으로 가장 가까운 등급 (점수)이있는 행 찾기

  16. 16

    div의 숫자 그룹에서 가장 높은 숫자 찾기

  17. 17

    원형 배열에서 가장 가까운 숫자 찾기

  18. 18

    주어진 숫자에 가장 가까운 숫자 합계 찾기

  19. 19

    두 3 자리 숫자의 곱에서 가장 큰 회문 찾기 (프로젝트 오일러 문제)

  20. 20

    목록에서 두 번째로 큰 숫자와 가장 작은 숫자 찾기

  21. 21

    첫 번째 열의 인덱스 값에 해당하는 두 번째 열에서 가장 작은 숫자 찾기

  22. 22

    가장 큰 숫자와 두 번째로 큰 숫자 찾기

  23. 23

    두 숫자의 합을 찾는 가장 효율적인 방법

  24. 24

    사전에서 가장 가까운 숫자의 낮은 키 찾기

  25. 25

    숫자 열에서 두 셀 사이의 특정 증가 찾기

  26. 26

    배열에서 서로 다른 두 숫자의 합이 변수 숫자와 같은지 확인합니까?

  27. 27

    numpy를 사용하여 두 개의 3 자리 숫자의 곱으로 만든 가장 큰 회문 찾기

  28. 28

    Excel에서 음수로 가장 작은 두 숫자 반환

  29. 29

    다른 변수의 모든 동일한 값에 대해 변수에서 숫자가 처음 나타날 때까지 개수 찾기

뜨겁다태그

보관