本文主要是介绍Vijos P1848 记数问题【进制】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
试计算在区间 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
样例输入1
11 1
样例输出1
4
限制
每个测试点1s。
提示
对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
来源
NOIP 2013 普及组
问题链接:Vijos P1848 记数问题
问题分析:
穷举法实现,没有什么技术含量。
一个数模除10的结果是该数的个位,一个数处以(整除)10的结果是该数10进制右移1位(去掉个位)。
程序说明:
(略)
参考链接:(略)
AC的C++程序如下:
#include <iostream>using namespace std;int main()
{int n, x, ans, v;cin >> n >> x;ans = 0;for(int i=1; i<=n; i++) {v = i;while(v) {if(v % 10 == x)ans++;v /= 10;}}cout << ans << endl;return 0;
}
这篇关于Vijos P1848 记数问题【进制】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!