ascode 1326 수상한 계산기

1 분 소요

문제 설명

상협이네 집에는 수상한 계산기가 있다. 이 계산기는 숫자가 입력되면 각 숫자를 뒤집은(뒤집는 다는 의미는 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);
  }

}

댓글남기기