티스토리 뷰

C, C++/정올

2812 : 각 자리수의 합

j0n9m1n1 2016. 6. 6. 20:20
반응형

2812 : 각 자리수의 합

제한시간: 1Sec    메모리제한: 128mb
해결횟수: 580회    시도횟수: 1448회   



자연수 N을 입력받아서 각 자리수의 합이 한자리가 될 때까지 그 합을 출력하는 프로그램을 작성하시오.


※ int형 변수로는 232-1 까지 입력받을 수 있다.

 

양의 정수 N을 입력받는다. (1 ≤ N ≤ 263-1)



첫 번째 줄에 입력받은 수의 각 자리수의 합을 출력한다.
출력한 수가 10 이상이면 그 수의 각 자리수의 합을 다음줄에 출력한다.
출력한 수가 10 미만이 될 때까지 반복하여 출력한다.


 [Copy]
1234567891
 [Copy]
46
10
1




출처 : jungol

#include <stdio.h>
int main() {

 long long N1, N2, N3, sum1 = 0, sum2 = 0, sum3 = 0;

 scanf("%lld", &N1);

 while (N1 > 0) {

  sum1 += (N1 % 10);

  N1 /= 10;
 }

 printf("%lld\n", sum1);

 if (sum1 < 10) {

  return 0;
 }
  
 N2 = sum1;

 while (N2 > 0) {

  sum2 += (N2 % 10);

  N2 /= 10;
 }

 printf("%lld\n", sum2);

 if (sum2 < 10) {

  return 0;
 }

 N3 = sum2;

 while (N3 > 0) {

  sum3 += (N3 % 10);

  N3 /= 10;
 }

 printf("%lld\n", sum3);

 if (sum2 < 10) {

  return 0;
 }

}


'C, C++ > 정올' 카테고리의 다른 글

2046 : 숫자사각형4  (0) 2016.06.06
1523: 별삼각형1  (0) 2016.06.06
1692: 곱셈  (0) 2016.06.06
1291: 구구단  (0) 2016.06.06
1341 : 구구단2  (0) 2016.06.06
댓글

티스토리 방명록

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday