您的位置:首页 > 游戏 > 手游 > 洛谷 P1554 梦中的统计 题解

洛谷 P1554 梦中的统计 题解

2024/11/19 17:21:54 来源:https://blog.csdn.net/woshishabi0716/article/details/140878655  浏览:    关键词:洛谷 P1554 梦中的统计 题解

题目背景

Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。

题目描述

Bessie 的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0…9):每一个数码在计数的过程中出现过多少次?

给出两个整数 M 和 N,求在序列 [M,M+1,M+2,…,N−1,N] 中每一个数码出现了多少次。

输入格式

第 1 行: 两个用空格分开的整数 M 和 N。

输出格式

第 1 行: 十个用空格分开的整数,分别表示数码 0…9 在序列中出现的次数。

输入输出样例

输入 #1

129 137

输出 #1

1 10 2 9 1 1 1 1 0 1

说明/提示

数据保证,1≤M≤N≤2×10^9,N−M≤5×10^5。

思路:

        思路1:

        定义一个函数,然后从M遍历到N,每次调用一次函数

        优点:不用管循环变量是否改变

        缺点:要多写一个函数

        思路2:

                从M遍历到N,每个i都算一下

                优点:不用写额外的函数

                缺点:每次算的时候,原来的循环变量不能改变       

AC代码1: 

//思路1
#include<bits/stdc++.h>//万能头文件
using namespace std;//cin,cout必备
int cnt[10];//每个数字的个数
int main()//main主函数
{int m,n;//定义变量cin >> m >> n;//输入for(int i=m;i<=n;i++)//m到n{int j=i;//循环变量不能改变while(j)//一直÷10,直到结果为0{cnt[j%10]++;//对应的数++j/=10;//别忘了这个}}for(int i=0;i<10;i++)//输出0~9的值{cout<<cnt[i]<<" ";}return 0;//程序结束
} 

AC代码2:

//思路1
#include<bits/stdc++.h>//万能头文件
using namespace std;//cin,cout必备
int cnt[10];//每个数字的个数
int main()//main主函数
{int m,n;//定义变量cin >> m >> n;//输入for(int i=m;i<=n;i++)//m到n{int j=i;//循环变量不能改变while(j)//一直÷10,直到结果为0{cnt[j%10]++;//对应的数++j/=10;//别忘了这个}}for(int i=0;i<10;i++)//输出0~9的值{cout<<cnt[i]<<" ";}return 0;//程序结束
} 

这篇博客就到这里啦,我们下篇再见!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com