#147. bin
bin
进制数合法性判断
【题目描述】
在信息学课上,楠楠学习了进制数。他知道了原来数不仅可以表示成十进制,还可以表示成二进制、八进制、十六进制,甚至是二十进制、三十进制都可以。而且它们都有一个相同的运算规则:逢 M 进一,例如二进制逢二进一,八进制逢八进一。
因此,M 进制数中每一位上的数可以用 0~M-1 来表示,即:
- 二进制数中只有 0 和 1 两种数字
- 八进制数中有 0,1,2…7 共八种数字
但是若 M 大于 10 时,大于等于 10 的数字用大写字母表示,例如十六进制数中有 0,1,2…9,A…F 共 16 种数字。
现在老师给出 N 个任意进制数,要求统计出 N 个数中合法的 M 进制数的个数。
【输入格式】
输入数据有多行。 第一行有两个整数 N()和 M(),分别表示任意进制数的个数和 M 进制。 接下来有 N 行,每行一个由数字和大写字母构成的任意进制数,位数小于 50。
【输出格式】
输出 N 个任意进制数中,合法的 M 进制数的个数。
【输入样例】
5 16
102
AFF
5A
890
5S
【输出样例】
4
【样例解释】
因为 "5S" 中 S 不是 16 进制数的合法数字,故只有 4 个合法的 16 进制数。
【数据范围与提示】
- 对于 30% 的数据,
- 对于另外 30% 的数据,
- 对于 100% 的数据,,,每行位数
文件io提醒
#include <cstdio>
#include ...
...
int main() {
freopen("bin.in", "r", stdin);
freopen("bin.out", "w", stdout);
// 在这里开始编写你的代码
return 0;
}