https://level.goorm.io/exam/49088/%EC%9D%98%EC%A2%8B%EC%9D%80-%ED%98%95%EC%A0%9C/quiz/1
문제 요약
첫째날, 진우가 선우에게 자신이 가지고 있는 식량의 절반을 준다.
둘째날, 선우가 진우에게 자신이 가지고 있는 식량의 절반을 준다.
가지고 있는 식량이 홀수라 반으로 나눌 수 없으면 그 식량을 통째로 준다.
이후 D번째 날 진우와 선우는 식량을 얼마나 가지고 있을까?
#include <stdio.h>
void main(){
int jw, sw;
int day;
scanf("%d %d", &jw, &sw);
scanf("%d", &day);
for(int i=1; i<=day; i++){
if(i%2!=0){
if(jw%2==0){
jw = jw/2;
sw = sw+jw;
}else{
jw = jw/2;
sw = sw + (jw+1);
}
}
else{
if(sw%2==0){
sw = sw/2;
jw = jw+sw;
}else{
sw = sw/2;
jw = jw + (sw+1);
}
}
}
printf("%d %d", jw, sw);
}
홀수날 일때는 진우가 선우에게
짝수날 일때는 선우가 진우에게
식량을 주고 반으로 딱 떨어지진 않을때 더 많은 쪽을 상대방에게 주는 쪽으로 풀이했다.
각자가 반을 나눠 담은 식량주머니 변수를 만들어 전달할 지 고민하다
각자의 식량 변수 두개로만 값을 전달하고 싶어 만들어보았다..
뭔가 더 깔끔한 코드가 있지 않을까 생각해보는데 연산자를 다르게 사용해봐야하나..