zoukankan      html  css  js  c++  java
  • 【C/C++】习题3-3 数数字/算法竞赛入门经典/数组和字符串

    【题目】
    把前n个(n<=10000)的整数顺序写在一起:123456789101112……
    数一数0~9各出现多少次(输出10个整数,分别是0,1,2,……,9出现的次数)
    【解答】
    暴力求解:统计0,1,…,n的所有数字,每个多位数的每个的出现次数,用一个数组存储。
    【代码】

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    using namespace std;
    int a[10]; //存储0~9的出现次数
    
    int main()
    {
        memset(a,0,sizeof(a));
        int n;
        scanf("%d",&n);
        for (int i = 0; i <= n; i++)
        {
            int tot = i; //注意不要直接对i操作,不然会死循环,设置一个接收变量
            while(tot)
            {
                int temp;
                temp = tot%10; //考察最后一位
                a[temp]++; //计数
                tot /= 10; //去掉最后一位
            }
        }
        for (int i = 0; i <= 9; i++)
        {
            printf("%d has %d
    ",i,a[i]);
        }
        system("pause");
    }
    
    
    

    递归法:
    https://blog.csdn.net/qq_40054352/article/details/88594932

  • 相关阅读:
    mysql读写分离
    mysql主从同步
    扫描与抓包
    加密与入侵检查
    监控
    selinux
    预期交互
    python发送邮件
    linux下安装虚拟环境
    博弈论
  • 原文地址:https://www.cnblogs.com/kinologic/p/13949480.html
Copyright © 2011-2022 走看看