2 1 10 1 1000
10 738
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int temp[10]; int ans[100001]; int i,j,n,a,b; int fun1(int x)//用于判断数字是否满足条件 { int mod; memset(temp,0,sizeof(temp)); while(x != 0) { mod = x % 10; if(temp[mod]) { return 0; } else { temp[mod]++; } x /= 10; } return 1; } int main() { //结果打表 for(i = 1;i < 100001;i++) { if(fun1(i)) { ans[i] = ans[i-1] + 1; } else { ans[i] = ans[i-1]; } } scanf("%d",&n); for(i = 0;i < n;i++) { scanf("%d%d",&a,&b); printf("%d\n",ans[b] - ans[a] + fun1(a));//区间相减即可 } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/litter_limbo/article/details/47168625