zoukankan      html  css  js  c++  java
  • How Many O's? UVA

    这个题个人感觉有点难,不容易理解。

    题意 给你两个数,n,m,找出从n到m所有的数一共包含几个0,看似简单,包含0的不就都是整数么,然后就用暴力循环来找,绝对TL。我自己写这题也没有什么好的办法,没有头绪,也是听别人讲的才明白这个方法,确实厉害。

    剥离锁位(名字什么随便起的,下面代码思路及注释)

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    typedef long long LL;
    LL OO(LL left)//此外函数即为本题核心代码及思想。只看代码的话不容易理解,自己找点小的数代入用这个方法解解看,就会明白了。以后类似的找包含别的数字的个数题就可以用这种方法。
    {
        LL n=1,mid,right=0,s=0;//从个位开始剥离,依次锁位,就是先定个位为0算有多少个,再定十位为0,算有多少个,以此类推往后算,需要注意每次都不要忘记右侧的数的界限,还有右侧的个数不要忘记加上就可以了
        while(left>9)
        {
            mid=left%10;
            left/=10;
            if(mid==0)
                s+=(left-1)*n+right+1;
            else
                s+=left*n;
            right=right+mid*n;
            n*=10;
        }
        return s;
    }
    int main()
    {
        LL i,n,m,a,b,s;
        while(scanf("%lld%lld",&m,&n),m!=-1&&n!=-1)
        {
            a=OO(m-1);
            b=OO(n);
            s=b-a;
            if(m==0)
                s++;
            printf("%lld
    ",s);
        }
        return 0;
    }
  • 相关阅读:
    深入理解JavaScript闭包
    冒泡排序
    Objective-C中的self和super
    IOS中UIKit——UIButton的背景图像无法正常显示的原因
    IOS绘图——简单三角形
    NSDateFormatter中时间格式串的含义
    IOS屏幕布局
    IOS学习感想
    WWDC————苹果全球开发者大会
    刚开始学IOS遇到的类和方法
  • 原文地址:https://www.cnblogs.com/nr1999/p/8474546.html
Copyright © 2011-2022 走看看