2012-03-28 2 views
1

누구든지 내게 시간의 숫자에 대한 수학 표현식을 만드는 방법을 보여줄 수 있습니까? total ++; 다음 코드에서 실행됩니까?중첩 된 루프에서 수학 표현식 만들기

나는 'i 루프'가 n/P 시간을 반복하고 그 총합 ++를 알고 있음을 이해한다; 'i loop iterations'* 'j loop iterations'를 실행합니다. 그러나 n과 P의 관점에서 이것으로부터 수학 표현을 얻는 방법을 모르겠습니다.

#include <iostream> 

using namespace std; 

int total = 0; 
int n = 20; 
int P = 2; 
int id = 1; 
int test = 0; 

int main() 
{ 

    for (int i = id*n/P; i < ((1+id)*n/P); i++) 
    { 
     cout << i << endl; 
     test++; 
     for (int j = 1; j <= i-1; j++) { 
      total++; 
     } 
    } 

    cout << test << endl; 
    cout << total; 
    return 0; 
} 
+0

힌트 : 중첩 루프는 외부 루프가 실행될 때마다 한 번 더 실행됩니다. (sum1, n) = n * (n + 1)/2에 대한 잘 알려진 수식이 있습니다. 루프가 1에서 시작하지 않음에 유의하십시오. – Attila

+1

아,이 루프를 잘 압니다. O (숙제^2) –

+0

외부 루프가 한 번 실행되면 어떻게됩니까? 두번? 세 번? 가능한 일반적인 규칙을 볼 수 있습니까? 그럼 유도로 증명할 수 있니? –

답변

0

정수의 합계를보십시오.

내부 루프는 하나의 값에서 시작하여 다른 값으로 실행되는 일련의 정수 값 i에 대해 i 번 실행됩니다. 1에서 첫 번째 값까지의 정수와 1에서 다른 정수의 합계가있는 경우 차이가 사용자의 대답입니다.

1에서 n까지의 정수의 합은 학습 가치가있는 공식입니다.