转化成1-m里面多少个首尾数字相同数字

对于个位数本身满足

而其他的,注意到对于每一个x,x/10再加上末尾固定的数即满足,所以答案为m/10+9?

最后注意到如果m的个位数<最高位不满足=

 1 #include<stdio.h>
 2 long long fun(long long m)
 3 {
 4     if(m<10) return m;
 5     long long r=m%10,Sum=m/10+9;
 6     while(m>=10) m/=10;
 7     if(m>r) Sum--;
 8     return Sum;
 9 }
10 int main()
11 {
12     long long l,r;
13     scanf("%I64d%I64d",&l,&r) 
14     printf("%I64d\n",fun(r)-fun(l-1));
15     return 0;
16 }

题目链接:http://codeforces.com/contest/204/problem/A

相关文章:

  • 2022-12-23
  • 2021-11-08
  • 2021-08-27
  • 2022-01-28
  • 2021-10-14
  • 2021-09-19
  • 2022-12-23
  • 2022-01-14
猜你喜欢
  • 2021-07-08
  • 2022-01-05
  • 2021-08-01
  • 2021-05-29
  • 2022-02-24
  • 2021-07-21
  • 2021-07-13
相关资源
相似解决方案