3344:[中级组] 递归法取数位
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
1
提交:9
解决:0
题目描述
## 题目背景
求一个整数的第k位数字有很多种方法。
以下的方法就是一种。
题目所给代码如下:
```cpp
// 求x用10进制表示时的数位长度
int len(int x){
if(x<10) return 1;
return len(x/10)+1;
}
// 取x的第k位数字
int f(int x, int k){
if(len(x)-k==0) return x%10;
return ___________; //填空
}
int main()
{
int x = 23574;
printf("%d\n", f(x,3));
}
```
对于题目中的测试数据,应该打印 $5$ 。
请仔细分析源码,补充划线部分所缺少的代码,然后修改上述代码并解决如下问题。
## 题目描述
给你两个十进制整数 $n$ 和 $k$,求 $n$ 从高到低第 $k$ 位上的数字。
## 输入格式
一行,两个整数 $n$ 和 $k$($1 \le k \le 8, 10^{k}-1 \le n \le 10^9$)。
## 输出格式
输出共一行。
第一行,一个整数,表示 $n$ 的十进制表示从高到低第 $k$ 位上的数字。
## 样例
```input1
23574 3
```
```output1
5
```
## 题目来源
第 11 届蓝桥杯青少组 C++ 选拔赛中级组