Description
定义:A + B= C,如果数字C的各个位都是相同的(C > 10),则称A和B是一对“重复数”。你需要计算的问题是在[X,Y]有多少对“重复数”。(A, B可以相等)
Input
输入包含多组测试用例,对于每组测试用例:
每个测试实例包含两个整数X,Y(1 <= X <= Y <= 106)。
Output
对于每个测试用例,输出有几对“重复数”,每组数据占一行。
Sample Input
1 10
10 12
Sample Output
5 2#include<cstring> #include<algorithm> #define K 2000010 using namespace std; int s[200]; int main(){ int i,n,m,t,ans,sum=0; for(i=1;i<10;i++){ t=i; while(t*10+i<K){ t=t*10+i; s[sum++]=t; } } while(~scanf("%d %d",&n,&m)){ for(ans=0,i=0;i<sum;i++){ if(s[i]>=2*n&&s[i]<=2*m){ t=n; if(s[i]-t>m){ t=s[i]-m; } ans+=s[i]/2-t+1; } } printf("%d\n",ans); } return 0; }