洛谷1980 计数问题
2015-08-22 14:19
375 查看
洛谷1980 计数问题
本题地址: http://www.luogu.org/problem/show?pid=1980题目描述
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
输入输出格式
输入格式:输入文件名为 count.in。
输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。
输出格式:
输出文件名为 count.out。
输出共 1 行,包含一个整数,表示 x 出现的次数。
输入输出样例
输入样例#1:11 1
输出样例#1:
4
说明
对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<stack> #include<queue> #include<cstring> #define PAU putchar(' ') #define ENT putchar('\n') #define MSE(a,b) memset(a,b,sizeof(a)) #define REN(x) for(ted*e=fch[x];e;e=e->nxt) #define TIL(x) for(int i=1;i<=x;i++) #define ALL(x) for(int j=1;j<=x;j++) using namespace std; inline int read(){ int x=0;bool sig=true;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=false; for(;isdigit(ch);ch=getchar())x=10*x+ch-'0';return sig?x:-x; } inline void write(int x){ if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x; int len=0;static int buf[20];while(x)buf[len++]=x%10,x/=10; for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return; } int main(){ int n=read(),x=read();char s[20];int sum=0; TIL(n){ sprintf(s,"%d",i);for(int j=0;s[j];j++)if(s[j]-'0'==x)sum++; }write(sum); return 0; }
相关文章推荐
- 常见的电子轨道图形
- poj 1305 (毕达哥拉斯三元组,构造勾股数)
- 主成分分析Matlab实现
- iOS中设置导航栏标题的字体颜色和大小
- caffe的输入
- android之interpolator的用法详解
- 关于ShareSDK 的一些记录
- NOI 2006 最大权闭合图
- 洛谷1424 小鱼的航程(改进版)
- 将正在运行的项目war包重命名后再恢复原名造成问题的疑问
- 常见的网页布局二
- HDU 4289 Control
- 网站的脉络梳理
- 如何使Label有修改功能
- TableView详细解释
- 能测试的主要概念和计算公式
- Java虚拟机内存分配策略
- html 标签
- Ajax提交方式
- Android dialog无标题栏样式style(for 自定义dialog)