XX把自己的密码设置成所有数字是不同的一个整数,并把这个整数叫做美丽数(例如12345 是美丽数, 11 不是美丽数 ,100 也不是美丽数)。
你能帮他算一算在某一区间[a,b]范围内有多少个美丽数吗?
输入
输入的第一行是单个整数T(T≤1000),表示测试用例数。
对于每个测试用例,如题目所述,有两个数字a和b。(1≤a≤b≤100000)
输出
每个测试用例对应一行输出答案。
输入范例
2
1 10
1 1000
输出范例
10
738
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int f(int n)
{
int a[20];
int i=0;
while(n)
{
a[i++]=n%10;
n=n/10;
}
sort(a,a+i);
for(int j=0;j<i-1;j++)
{
if(a[j]==a[j+1])
{
return 0;
}
}
return 1;
}
int sum[100000];
int main()
{
sum[0]=0;
for(int i=1;i<=100000;i++)
{
sum[i]=sum[i-1]+f(i);
}
int t;
scanf("%d",&t);
while(t--)
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",sum[b]-sum[a-1]);
}
return 0;
}