zoukankan      html  css  js  c++  java
  • 编程之美1的数目

    今天白天继续打酱油,损人品。回来只好分享一下自己写的代码,弥补rp。

    编程之美2_4,题目原意是给出一个数n,求出1到n这n个数字中1的个数,和boj“北邮超科技大厦”那题相似。很无聊很td的说。书本上的做法不太易懂,就自己写个了,暂时没有发现有bug。

    View Code
     1 #include<iostream>
    2 using namespace std;
    3 int a[20]={0};
    4 int weishu(int n)
    5 {
    6 int len=0;
    7 while(n)
    8 {
    9 a[len++]=n%10;
    10 n/=10;
    11 }
    12 return len;
    13 }
    14 int pow10(int n)
    15 {
    16 int ans=1;
    17 int i;
    18 for(i=1;i<=n;i++) ans*=10;
    19 return ans;
    20 }
    21 int solve(int n)
    22 {
    23 int i,j,k,t,ans=0;
    24 int len=weishu(n);
    25 for(i=0;i<len;i++)
    26 {
    27 j=i+1;
    28 t=0;
    29 for(k=j;k<len;k++)
    30 t+=a[k]*pow10(k-j);
    31 if(a[i]==0)
    32 {
    33 t*=pow10(i);
    34 ans+=t;
    35 }
    36 else if(a[i]==1)
    37 {
    38 t*=pow10(i);
    39 ans+=t;
    40 for(j=0,t=0;j<i;j++)
    41 t+=a[j]*pow10(j);
    42 t++;
    43 ans+=t;
    44 }
    45 else
    46 {
    47 t++;
    48 t*=pow10(i);
    49 ans+=t;
    50 }
    51 }
    52 return ans;
    53 }
    54
    55 int main()
    56 {
    57 int n;
    58 while(cin>>n)
    59 cout<<solve(n)<<endl;
    60 system("pause");
    61 return 0;
    62 }

    最令人td的是math.h库中的pow精度是double,不能用于这题,开始不知道,老是wa,还以为自己思路错了。自己写个就马上好了。

  • 相关阅读:
    键盘输入thisisunsafe
    vscode
    iterm2 rz sz
    homebrew镜像更换
    mac
    homebrew下载不成功
    shutil:高层文件操作
    tempfile:临时文件系统对象
    linecache:读取文本文件的指定内容
    fnmatch:Unix式glob模式匹配,简单场景下可以代替正则
  • 原文地址:https://www.cnblogs.com/winterIce/p/2166848.html
Copyright © 2011-2022 走看看