• 编程之美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,还以为自己思路错了。自己写个就马上好了。

  • 相关阅读:
    Python环境搭建
    Python简介
    第一个Java程序
    shiro实战(1)--web
    JDBC释放数据库连接
    IDEA(ideaIU) v2019.2.2详细安装破解教程
    ubuntu通过代理设置update源
    virtualbox FAIL(0x80004005) VirtualBox VT-x is not available (VERR_VMX_NO_VMX)
    Dubbo入门实例
    jsp模板
  • 原文地址:https://www.cnblogs.com/winterIce/p/2166848.html
Copyright © 2020-2023  润新知