2017-12-22 14 views
0

내가 작업 할 수있는이 방법이 있습니다쉽게 반복없이 1과 N 사이의 모든 쌍의 합계가

for(int i =1;i<=n;i++){ 
    for(int j=1;j<=n;j++){ 
     if(i+j==k//it is my variable which i know){ 
      out.print(i+" "+j); 
    } 
} 

을하지만 두 번 번호를 인쇄합니다. 한 번 인쇄하고 싶습니다. 이 문제를 처리하는 가장 빠른 방법을 제시 할 수 있습니까?

답변

0

는 K와 I의 범위를 알지 않으면, 단지 방정식 해결 :

J = KI

j_min = 최대 (1, K-i_max) = 최대 (1 KN)

j_max 분 = (N, K-i_min) = 분 (N, K-1)

그래서 하나를위한 루프 j_min로부터 다음 인쇄 (KJ, J)를 j_max하고.