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++ 选拔赛中级组