• 有错误的打印机



    题目:

    一台打字机准备将1到10^n的数依次打出。在打印过程中,这台打字机出现了一个故障:数字“3”打不出来。因此,所有含有数字“3”的数都没有被正确地打出。试问没有被正确打出的数一共有多少个。

    输入:

    输入一个正整数n。       n<=1000;

    输出:
    输出从1到10^n这些数中不能被正确打印的数的个数。

    思路:

    eg:

    n=1时:10-1*9=1;

    n=2时:100-9*9=19:;

    n=3时: 1000-9*9*9=271;

    #include<iostream>
    #include<string>
    #include<cmath>
    #include<cstdio>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int main()
    {
        int x,shu,n,lena,lenb,len;
        int a[2333]={0},b[2333]={0};
        cin>>n;
        b[1+n]=1;
        a[1]=1;
        lenb=1+n;
        lena=1;
        for(int z=1;z<=n;z++)
        {
            x=0;
            for(int j=1;j<=lena;j++)
            {
                a[j]=a[j]*9+x;
                x=a[j]/10;
                a[j]=a[j]%10;
            }
            a[lena+1]=a[lena+1]+x;
            if(x!=0)
            {    
                lena++;
            }
        }
        for(int i=lenb;i>=1;i--)
        {
            b[i]=b[i]-a[i];
            int j=i;
            while(b[j]<0)
            {
                b[j]=b[j]+10;
                b[++j]--;
            }
        }
        while(b[lenb]==0)
            lenb--;
        for(int i=lenb;i>0;i--)
            cout<<b[i];
        return 0;
    }
  • 相关阅读:
    set用法
    01分数规划
    unique && stl的全排列
    lower_bound() && upper_bound()
    spfa判负环
    倍增求LCA
    数据生成c++程序模板
    samba
    vsftp快速配置
    grub丢失的修复
  • 原文地址:https://www.cnblogs.com/zyker/p/5879205.html
Copyright © 2020-2023  润新知