C언어를 아예할줄몰라서 그런데 진짜 간단한거 하나만 분석좀해주세요 ㅠㅠㅠ
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
예를 들어 10의 제곱을 계산하고자 할때 |
(x+1)^2=x^2+x+x+1을 이용하여 다음과 같이 C언어로 작성이 가능합니다.
square(int n)
{
int a, b;
if (n==1) return (1);
a = n-1;
b = square(a) + a + a + 1;
return ( b );
}
main()
{square(10);
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
위에 코드에서 각줄이 뭘 의미하는지좀 알려주실수 있으신가요??
C언어를 하나도모르니까 뭐 어디서 어디로가고 어떻게되는지 하나도모르겠습니다 ㅠㅠㅠ
제발좀 도와주세요ㅠㅠㅠㅠ
수업시간엔뭘하고
C를 배운지 4년이 넘어서 기억이 하나도안납니다 제발 부탁드려요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
이걸 왜 재귀로..?
풀어드렸습니다~
만약 처음에 5가 들어온다면 b = sqaure(4) + 4 + 4+ 1;
squre(4) = 3 + 3 + 1; squre(3) = 2 + 2 + 1; squre(2) = 1 + 1 + 1; squre(1) = 1;
다더해봐 9 + 7 + 5 + 3 + 1 = 25
글 보긴보냐. 반응이 읍네..
아 죄송요 ㅠㅠㅠㅠ 계쏙검색해보다가 못봤네요 ㅠㅠ 근데 if (n==1) return (1); 이거랑 return ( b ); 이거 두개의 의미가 뭐죠?ㅠㅠㅠ
그리고 squre(4) = 3 + 3 + 1 이게 어떻게나온지 모르겠어요ㅠㅠㅠㅠ
해석못함? 인자 n이 1로 처들어오면 1을 반환함. 끝 ;; return b는 계산한거 반환. 뭐가어려운겨
a = n-1; b = square(a) + a + a + 1;
그럼 n이 4로 처들어오면 뭐겠어? squre(3) + 3 + 3+ 1 이잖아.
그럼 squre(3)은 뭐곗어? squre(2) + 2+ 2+ 1 이잖아
squre(1)은 걍 1이고, if(n == 1 ) return 1; 이니까
squre(2) 는 1+ 1+ 1
squre(2) 는 squre(1)+ 1+ 1
아 이제좀 알겠네요 감사합니다 ㅠㅠㅠㅠㅠㅠ