题意:用x和y组成不大于n的整数有多少个(0 ≤ x, y ≤ 9,1 ≤ n ≤ 10^9)。
题目链接:http://codeforces.com/problemset/problem/244/B
——>>枚举x, y,将其所有组成的数放入set,最后看set里有多少个元素就好。
#include <cstdio>
#include <set>
using namespace std;
int n;
set<long long> se;
void Find(int x, int y, long long cur){
long long getx = cur * 10 + x;
long long gety = cur * 10 + y;
if(getx && getx <= n){
se.insert(getx);
Find(x, y, getx);
}
if(gety <= n){
se.insert(gety);
Find(x, y, gety);
}
}
int main()
{
while(scanf("%d", &n) == 1){
se.clear();
for(int x = 0; x < 9; x++)
for(int y = x + 1; y <= 9; y++)
Find(x, y, 0);
printf("%d\n", se.size());
}
return 0;
}