2016-10-10 1 views
3

`uint32_t` (이 코멘트를 제외하고는 전체가 그 것이다)에 응답 :C++ 프로그램으로 인해 나는 다음과 같은 프로그램을위한 루프

#include <iostream> 
#include <vector> 

void sieve(uint32_t n) { 
    for(uint32_t i = 0; i < n; i++) { 
    for(uint32_t j = i * i; j < n; j += i) { 
    } 
    } 
} 

int main(int argv, char * argc[]) { 
    sieve(10); 
    return 0; 
} 

그것은 잘 컴파일합니다. 내가 그것을 실행할 때, 그것은 단지 영원히 멈춘다. main에 첫 번째 줄로 std::cout << "Test"을 넣어도 인쇄되지 않습니다.

내가 여기에 뭔가 분명한 것을 놓치고 있습니까? i 통해

+0

방법 테스트 결과가 결론 않았다 무한 루프 (j += 0) ==> 변경하지 않는 이유는 무엇입니까? ;) – paddy

+0

나는 과장으로 증명을 사용했다 – Cisplatin

답변

9

for(uint32_t j = i * i; j < n; j += i) {

처음은 0이고 그래서 j 실제로는 _forever_을 중단하는 것이

+0

와우, 나는 바보 야. 고마워. – Cisplatin

+0

나를 때려. .. 내가 그것을 달렸을 때 그것은 내 컴퓨터를 얼었다. ... 수업은 배웠다. – amanuel2

관련 문제