링크 : https://www.acmicpc.net/problem/1065
한수 자체 의미를 이해 못했다.
문제를 잘 읽자.
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면
게다가
1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력
해야 하는 조건을 가졌지만 하나도 제대로 읽지 않아서 시간 낭비 겁나 했다. 잘하는 짓이다.
#include <iostream>
using namespace std;
int main() {
int N, count = 0;
cin >> N;
if (N >= 100) {
count = 99;
for (int i = 100; i <= N; i++) {
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if (a - b == b - c)
count++;
}
}
else {
count = N;
}
cout << count << endl;
}
여기서 복습할 것은 abc
를 어떻게 얻어내었는가이다.
int a = i / 100;
a는 정수이므로 몫을 받아낸다.int b = i / 10 % 10;
b를 먼저 10으로 나누면 1의 자리 수가 제거된 채 십의 자리 수로 받아진다. 그 후 나머지 연산자를 사용하면 현재는 1의 자리 수(실제로는 십의 자리 수)를 얻는다.int c = i % 10;
나머지 연산자를 통해 얻는다.