반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //1~1000사이에 있는 수에 대해 암스트롱 수 구하기(각 자리 수에 세제곱의 합이 그 자신의 수와 같아 지는 수) //371 = 3^3(27) + 7^3(343) + 1^3(1) #include <stdio.h> #define RANGE 1000 main() { int num, remain, total; for (int i = 1; i <= RANGE; i++) { total = 0; num = i; while (1) { if (num == 0) //계산 완료후에 while()문 벗어나기 break; remain = num % 10; //10으로 나눠 1의자리수 부터 계산한다. total += remain * remain * remain; //세제곱 num /= 10; //10으로 나눠 몫만 num에 넣어서 끝자리 수를 버린다. } if (i == total) printf("%d\n", i); } } | cs |
9행 for문으로 1~1000사이의 수를 검사한다.
15행 나머지 연산으로 가장 끝자리 수 하나를 꺼내온다.
16행 가져온 수를 세제곱
17행 다음 수를 계산하기 위해 10으로 나눠 몫만 취해서 끝자리 수를 버린다.
19~20행 암스트롱 수라면 출력
반응형
'프로그래밍 > C programming' 카테고리의 다른 글
c언어 다중배열 [3][2] 제곱과 세제곱을 저장하고, 출력하는 프로그램 (0) | 2020.07.31 |
---|---|
c언어 1에서 1000사이 정수중 수를 구성한 개개의 수가 연속적으로 되어있는 수를 찾는 프로그램(for문, if~else문, break) (0) | 2020.06.16 |
c언어 러시아 농부 곱셉 알고리즘, 농부곱셈법, 이집트곱셈법 (0) | 2020.06.11 |
C언어 키보드로 입력된 문자열의 문자 수, 단어 수, 줄 수를 계산 getchar() 함수 (0) | 2020.06.08 |
C언어 문장을 입력 받아 공백문자 개수 세고, 밑줄로 변환하는 프로그램 getchar(), putchar() (0) | 2020.06.05 |
댓글