zoukankan      html  css  js  c++  java
  • HDU 4722 Good Numbers 2013年四川省赛题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722

    题目大意:给定一个区间,求区间中有多少个满足每位上的数的和是10的倍数。

    解题思路:先打表暴力求出前200项符合条件的个数,然后再找规律。

    0~9    0    1个

    10~19  9   1个

    20~-29  18  1个

    0~100         10个

    0~200         20个

    基本规律:r/10-(l-1)/10;只需要找两端点是否在范围内即可

    #include<cstdio>
    #include <iostream>
    using namespace std;
    long long is(long long x)
    {
     long long k,l,r,ans;
     l=x/10*10;
     r=(x/10+1)*10;//cout<<"l="<<l<<",r="<<r<<endl;
     for(long long i=l;i<r;i++)
     {
      k=i;ans=0;
      while(k!=0)
     {
      ans+=k%10;
      k/=10;
      //cout<<"k="<<k<<",ans="<<ans<<endl;
     }
     if(ans%10==0) {return i;}
     }
    }
    int main()
    {
     int t;
     scanf("%d",&t);
     for(int ca=1;ca<=t;ca++)
     {
      long long a,b,sum;
      cin>>a>>b;
      long long l=(a-1)/10,r=(b)/10;
      sum=r-l;
      if(is(a-1)<=(a-1)) sum-=1;
      if(is(b)<=b) sum+=1;
     //if(a!=0) sum-=1;
      printf("Case #%d: %lld
    ",ca,sum);
     }
     return 0;
    }
  • 相关阅读:
    第13周作业集
    软件工程结课作业
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业
    第10次作业
    找回感觉的练习
    第16周作业
    第15周作业
    第14周作业
  • 原文地址:https://www.cnblogs.com/www-cnxcy-com/p/5739984.html
Copyright © 2011-2022 走看看