=== 소감 === 나름대로 연필로 끄적거리다가, 끙끙앓기도 했지만, 곧 풀었어요! (올바른 알고리즘&답 인지는 모르겠지만 ^^;) 아마 제 맘대로 알고리즘 만든거라 이상하 거나 효율적이지 않은 코드가 많을 듯 합니다. 조건 부탁드립니다. 아. sample input에서 마지막 input 수가 안되네요. double 변수의 한계라고 생각되는데요. 더 큰 변수형는 없나요? long double도 sizeof(long double)하니까 크기가 double과 같게 나오네요. ---- 범위지정과 [PowerOfCryptography/Hint]를보고 ver 3을 만들기로 했다.. === 소스 === ==== ver.1 int 버젼 ==== {{{~cpp #include // k의 n승은 p // n과 p를 입력받아 k를 출력한다. int k_operation(int n, int p, int k); int square_k(int k, int n); void main() { int n, p, result, k = 1; scanf("%d", &n); fflush(stdin); scanf("%d", &p); result = k_operation(n, p, k); printf("k = %dn", result); } int k_operation(int n, int p, int k) { if(square_k(k, n) == p){ return k; }else{ k += 1; k_operation(n, p, k); } } int square_k(int k, int n) { int temp; temp = k; while(n > 1){ k *= temp; n -= 1; } return k; } }}} ==== ver2. double버젼 ==== {{{~cpp #include // k의 n승은 p // n과 p를 입력받아 k를 출력한다. double k_operation(double n, double p, double k); double square_k(double k, double n); double temp; void main() { double n, p, result, k = 1; scanf("%lf", &n); fflush(stdin); scanf("%lf", &p); result = k_operation(n, p, k); printf("k = %.fn", result); } double k_operation(double n, double p, double k) { if(square_k(k, n) == p){ return k; }else{ k += 1; temp = k; return k_operation(n, p, k); } } double square_k(double k, double n) { while(n > 1){ k *= temp; n -= 1; } return k; } }}} ==== ver.4 ==== === 나한테 할 말 === 난 이 문제 보는 순간 sqrt함수 바로 쓰려고 했는데 -_-; 어쨌든 아영아 C++의 오버로딩으로 두개를 합쳐보는건 어떨까? - [이영호] sqrt함수.처음들어보는 ㅜㅡ 하핫,, C++언어 아직 몰라요 ^^;;;; 가르쳐 주세요! --아영 제곱근 구하는 함수였군요 ! 연산자가 없어서 당황했었는데,,있었구나.ㅡ 대단해 공부열심히 하는구나 난그런함수 모르는대_ 역시 책이 이서야대_ㅠㅠ -영록 음.. 잘짯네.^^ 근데 temp라는 전역변수 없어도 되는거 아니냐?ㅎ 아웅 복잡해~>ㅁ<;; 그리궁..재귀호출인듯..ㅎ 꼭 재귀호출 안써도 될것 같은데 말야.^^ 잘못하면 스택오버플로우의 압박이..;;ㅁ;; 아닌가?ㅎ~~>ㅃ<;;;; ㅎㅎ 그럼 조은하루~!^^* - [조현태] temp도 나중에 넣은거야. temp 넣지 않고 k 값을 바로 받아버리면 값이 달라져서 그렇게 했어 ^^ 재귀호출은.. 생각난 대로 한건데, 스택오버플로우 되냐? ㅡㅜ -- 아영 ---- [LittleAOI] [PowerOfCryptography]