for문 명령의 실행횟수
남
처음 접해보는 문제가 과제에 나와서 매우 혼란스러운데요, c++명령문의 실행횟수에 관한 문제입니다.for문이 하나일 경우 예를 들면for(i=1;i=n;i++)일 경우 경우의 수는 n개지만 실행횟수는 for문에 한 번 더 대입해보는 횟수 1이 추가되는 걸로 알고 있는데요,그래서 실행횟수는 n+1
그럼 for문이 중첩될 경우 예를 들면
for(i=1;i=n;i++)for(j=1;j=;j++)일 경우의 두 번째 for문의 실행횟수는 1에서 n까지의 합에 첫 번째 for문의 실행횟수마다 1을 더해줘야 하기에
결국은 n(n+1)/2에 추가적으로 n을 더해줘야 되는 건가요?두번째 for문의 실행횟수는 그래서 n(n+1)/2+n
그럼 같은 양식의 for문이 세 개가 중첩되었을 경우에는n(n+1)/2+n을 1부터 n까지 시그마 해줘야 하기 때문에(n²+n)/2+n의 시그마
{n(n+1)(2n+1)/6+n(n+1)/2}/2+n(n+1)/2를 정리한 식이 최종적인 세번째for문의 실행횟수가 되는 건가요?여기까지가 제가 생각해낸 답인데 과제를 제출할 때까지 물어볼 사람이 없네요..; 도와주세요
-
초엘
두번째 for 문이 곱절이되죠
근데 그걸 수학공식으로 구하려고 하지는 않죠...
가르치는 분이 수학자이신듯 -
그댸와나
첫번째 for문이 아니라 두번째 for문이 곱절이 되는 거 아닌가요? 첫번째 for문의 실행수마다 사이클을 돌기 때문에... 아 좌뇌 마비
-
초월
for(int i = 1; i=n; i++) 일때
1부터 n부터 돌죠
for문의 두번째 칸은 참인지 검사하거든요
참이 아닐경우 루프문을 빠져나가게 됩니다
그러므로 for(int i = 0 ; in ; i++) 와 같은 반복횟수를 갖게 됩니다 -
헛매질
for 문의 이중중첩에 관련된 질문을 하셨는데요
for(i=1;i=n;i++)
for(j=1;j=n;j++)
첫번째 for 문의 i가 1일때
두번째 for 문이 돌죠
두번째 for문이 다 돌면
첫번째 for문이 2가되죠
그리고 두번째 for문이 다시 돌게 됩니다
반복하면 두번째 for문이 n번만큼 돌게 되고
첫번째 for 문은 두번째 for 문이 다 돌때마다 돌게 되므로
n*n 이 됩니다