1. 정답 코드 #include int main(void) { int n, m, k, cnt=0; scanf("%d %d %d", &n, &m, &k); int i; for(i =n;; i+=m){ cnt++; if(k == cnt){ break; } } printf("%d", i); } 2. 코드 설명 for문을 무한 루프로 만들어 주고 등차 (i+=m)를 for문에 넣어준다. 만약 k와 count값이 같아지면 loop를 탈출 하는 구조이다.
1. 정답 코드 #include int main(void) { int n; scanf("%d", &n); int i = 0, cnt = 0; while(n >= i){ if(n==i) break; cnt++; i += cnt; } printf("%d", i); } 2. 코드 설명 문제를 대충 읽고 풀어서 무한 반복문을 사용하지 않았지만, 이번 문제는 무한 반복문과 break를 사용해서 푸는 문제인듯하다. 어떤 반복문을 이용해도 풀 수 있을 문제이다.
1. 정답 코드 #include int main(void) { double n, m, k; scanf("%lf %lf %lf", &n, &m, &k); printf("%.2lf MB", n*m*k/(8388608)); } 2. 코드 설명 8388608은 1024 * 1024 * 8이다. 즉 8388608byte는 1mb라는 것이다. c언어 특성상 double을 사용하지 않고 int로 사용해서 계산 할 경우 결과 값이 0.0 이런식으로 나오기때문에 모든 변수를 double형으로 만들어줘야 한다. 간단한 계산 문제였다.
1. 정답 코드 #include int main(void) { double n, m, k, j; scanf("%lf %lf %lf %lf", &n, &m, &k, &j); printf("%.1lf MB", n*m*k*j/(8388608)); } 2. 코드 설명 8388608은 1024 * 1024 * 8이다. 즉 8388608byte는 1mb라는 것이다. c언어 특성상 double을 사용하지 않고 int로 사용해서 계산 할 경우 결과 값이 0.0 이런식으로 나오기때문에 모든 변수를 double형으로 만들어줘야 한다. 간단한 계산 문제였다.