C로 구현한 1065번 한수 구하기 문제 풀이입니다.
#include <stdio.h>
void set(int input) {
if(input < 100)
printf("%d", input);
else {
int a, b, c, count=99;
for(int i=100; i<=input; i++) {
a = i%10;
b = i/10 %10;
c = i/100;
if((a-b) == (b-c))
count ++;
}
printf("%d", count);
}
}
int main() {
int input;
scanf("%d", &input);
set(input);
}
우선 100 미만의 수들은 모두 한수가 성립됩니다. 그렇기 때문에 100 미만의 수는 그대로 출력해주고
100이상의 수는 각 자리수를 구해 해당 자리 수 간의 차이가 같으면 count 를 1씩 증가시키도록 합니다.
[소감]
입력된 수가 100이상일 경우에 99이하의 수들은 모두 한수이기 때문에 변수 count 초기값을 99로 지정해줘야 하는데
습관적으로 0으로 초기화해버렸다.. 정신 차리고 차근차근 하자 ..!
https://www.acmicpc.net/problem/1065
'백준(C언어) 풀이 > 함수' 카테고리의 다른 글
백준(C) 4673번 셀프 넘버 풀이 (2) | 2021.07.13 |
---|---|
백준(C) 15596번 정수 N개의 합 풀이 (0) | 2021.07.13 |