ascode 1326 수상한 계산기
문제 설명
상협이네 집에는 수상한 계산기가 있다. 이 계산기는 숫자가 입력되면 각 숫자를 뒤집은(뒤집는 다는 의미는 18245의 경우 54281로 변환한다는 의미이다.) 다음에 각각을 더한 다음, 그 결과값을 최종 결과가 한 자리가 될 때까지 계속해서 각 자리수를 더하는 방식으로 결과를 산출한다.
예를 들면 49가 입력되면 94로 변환하고 381이 입력되면 183으로 변환한다. 그런 다음 두 수를 더한 결과값인 277의 각 자리수에 대하여 합을 구하면 2+7+7 = 16이 되고, 다시 1+6을 계산한 결과값인 7이 최종 결과가 된다. 이 수상한 계산기처럼 계산하는 프로그램을 작성해 보자.
입력 설명
테스트 케이스의 수 T(1 <= T <= 10)가 들어온다. 그 다음 T만큼 정수 N1 과 N2가 들어온다.
N1, N2는 0을 제외한 1~9까지의 숫자로 이루어져 있다. (1 <= N1, N2 <= 99,999,999)
출력 설명
각 테스트 케이스마다 수상한 계산기로 계산한 결과값을 한 줄에 하나씩 출력한다.
입력 예시
2
49 381
1234 56789
출력 예시
7
9
#코드
#include <stdio.h>
#include <string.h>
int main(){
int testcase;
scanf("%d", &testcase);
for(int i = 0; i < testcase; i ++){
int a, b, temp;
char tempc[30];
scanf("%d %d", &a, &b);
temp = a + b;
for(;;){
if(temp / 10 == 0){
break;
}else{
sprintf(tempc, "%d", temp);
temp = 0;
for(int i = strlen(tempc) -1 ; i >= 0; i--){
temp += (tempc[i] - 48);
}
}
}
printf("%d\n", temp);
}
}
댓글남기기