zoukankan      html  css  js  c++  java
  • #308 (div.2) B. Vanya and Books

    1.题目描写叙述:点击打开链接

    2.解题思路:本题要求统计数位的个数,简单的试验一下发现有例如以下规律:一个n位数的个数有9*(10^n)个。因此全部n位数的数位是n*9*(10^n)个。因此能够利用两个循环变量base,k来计算,当中base表示n位数的总个数,k表示每个n位数的数位有k位,循环条件是n-base>0,这样就可以完毕统计。

    3.代码:

    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<sstream>
    #include<set>
    #include<vector>
    #include<stack>
    #include<map>
    #include<queue>
    #include<deque>
    #include<cstdlib>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<ctime>
    #include<functional>
    using namespace std;
    
    typedef long long ll;
    typedef unsigned long long ull;
    
    
    #define me(s) memset(s,0,sizeof(s))
    #define For(i,n) for(int i=0;i<(n);i++)
    #define pb push_back
    #define sz size
    #define clr clear
    #define F(a,b) for(int i=a;b;i++)
    
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            ll cnt=0;
            ll base=9,k=1;
            while(n-base>0)
            {
                n-=base;
                cnt+=base*k;
                base*=10;
                k++;
            }
            cnt+=n*k;
            printf("%I64d
    ",cnt);
        }
        return 0;
    }

  • 相关阅读:
    C#中的委托和事件的使用
    C#中Attribute/特性的使用
    Eclipase + CDT
    设计模式总结
    Nginx源码编译
    Nginx自定义扩展模块
    电池的寿命
    大盗阿福
    河中跳房子
    An Easy Problem
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5082615.html
Copyright © 2011-2022 走看看