without haste but without rest
[C / 자료구조] 1주차 과제 - 재귀 본문
제곱 연산의 과정을 출력하는 과제
#define CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int count = 0;
double res;
void depth(int n) {
for (int i = 0; i < n; i++) printf(" ");
}
double power(double d, int n) {
if (n > 0) {
depth(count++);
printf("power(%.3lf, %d)\n", d, n);
}
if (n == 0) {
count--;
return 1;
}
else if (n % 2 == 0) res = power(d * d, n / 2);
else res = d * power(d * d, (n - 1) / 2);
if (n > 1) {
depth(--count);
printf("power(%.3lf, %d) = %.3lf\n", d, n, res);
}
if (count == 0) printf("%.3lf ^ %d = ", d, n);
return res;
}
int main(void)
{
double d;
int n;
scanf_s("%lf %d", &d, &n);
printf("%lf", power(d, n));
return 0;
}
'Homework' 카테고리의 다른 글
[C / 자료구조] 2주차 과제 - ADT 구현, 사각형 문제 (0) | 2020.04.04 |
---|---|
[C / 자료구조] 1주차 과제 - 하노이 탑 (0) | 2020.04.04 |
[python/계프] 4주차 과제 - 경기 기록 (0) | 2020.04.04 |
[python/계프] 3주차 과제 - 포커 (0) | 2020.04.04 |
[python/계프] 2주차 과제 - 12진수 변환 (0) | 2020.04.04 |
Comments