题解 | #[NOIP2013]记数问题# 哈希表
[NOIP2013]记数问题
http://www.nowcoder.com/practice/28b2d9f2bf2c48de94a1297ed90e1732
描述
试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
例如,在1到11 中,即在1、2、3、4、5、6、7、8、9、10、11 中,数字1 出现了4 次。
输入描述:
输入共1行,包含2个整数n、x,之间用一个空格隔开。
输出描述:确定
输出共1行,包含一个整数,表示x出现的次数。
具体思路是:将1~n的区间遍历一遍,在遍历的过程中将区间内出现的数都统计一遍
在以x为下标的元素输出数组内容即可。(有待优化。。。)
int main() { int hash[10]={0}; //定义哈希表 int n,x; scanf("%d %d",&n,&x); for(int i=1;i<=n;i++) //遍历区间 { int tem = i; while(tem) //计算 { hash[tem%10]++; tem/=10; } } printf("%d",hash[x]); //输出 }