728x90
728x170
다음과 같이 입력 받은 정수 N의 각 자리의 수를 배열을 사용하지 않고 반복문을 사용하여 합할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> int main() { int N, sum = 0; scanf("%d", &N); for (int i = N; i != 0; i /= 10) { sum += (i % 10); } printf("정수 N의 각 자리수의 합 : %d", sum); return 0; } |
|
12345 15 |
원리는 다음과 같다.
입력 받은 정수 N을 0이 될 때까지 10으로 계속 나누어 준 후, 10으로 mod 연산을 수행하면 된다.
그리고 나온 값들을 모두 더해주면 끝!
[Step 1] 12345 12345 % 10 = 5 (다섯 번째 자리의 수)
[Step 2] 12345 / 10 ≒ 1234 1234 % 10 = 4 (네 번째 자리의 수) [Step 3] 1234 / 10 ≒ 123 123 % 10 = 3 (세 번째 자리의 수) [Step 4] 123 / 10 ≒ 12 12 % 10 = 2 (두 번째 자리의 수) [Step 5] 12 / 10 ≒ 1 1 % 10 = 1 (첫 번째 자리의 수) |
728x90
그리드형(광고전용)
'Source Code > C' 카테고리의 다른 글
버블 정렬(Bubble Sort) (0) | 2020.11.02 |
---|---|
조건문이나 함수 없이 반올림 하기 (0) | 2020.09.18 |
숫자 출력 시 앞에 0을 붙여 자리수 채우기 (0) | 2020.09.11 |
C언어 2차원 배열 동적 할당 예제 (0) | 2020.08.14 |
이진 탐색 트리 프로그램 (Binary Search Tree Program) (0) | 2020.05.15 |
배열 내에서 같은 수의 개수 찾기 (Finding the number of the same number in an array) (0) | 2017.09.14 |
원형 큐 (Circular Queue) 예 (0) | 2017.05.31 |
중위 표기 수식을 전위 표기 수식으로 변환하는 프로그램 (0) | 2017.05.31 |