문제

양의 정수를 입력받아 역으로 보여주고 각 자리 숫자의 합을 구하는 프로그램을 작성하라.

 

입력형식

21억 이하의 양의 정수를 입력받는다. 잘못된 데이터는 입력되지 않는다. 

하나의 결과가 나온 후에도 계속 새로운 입력을 받다가 0이 입력되면 프로그램을 종료한다.

최대 10개의 양의 정수가 입력될 수 있다.

 

출력형식

입력받은 수의 역과 각 자리 숫자의 합을 공백으로 구분하여 출력한다.

유효하지않은 "0"은 출력하지 않는다. 

입력받은 수의 역도 21억 이하의 정수이다.

 

<코드>

#include<stdio.h>

int main()
{
	int N, num, sum;
	int start=0;
	
	while(1)
	{
		scanf("%d", &N);
		
		if(!N)
			break;
		
		sum=start = 0;
		for(int i=1; N/i!=0; i*=10)
		{
			num = (N%(i*10))/i;
			if(num)
				start = 1;
			
			if(start)
			{
				printf("%d", num);
				sum += num;
			}
		}
		printf(" %d\n", sum);
	}
	
	
	return 0;
}

'코딩 > Beginner Coder' 카테고리의 다른 글

1740 : 소수  (0) 2020.05.28
2811 : 소수와 합성수  (0) 2020.05.28
1002 : 최대공약수, 최소공배수  (0) 2020.05.26
1658 : 최대공약수와최소공배수  (0) 2020.05.26
2809 : 약수  (0) 2020.05.26

+ Recent posts