由题意我们知道len中为现阶段长度,如果其与k相等也就是找到了正确的位数,否则就调用递归来进行搜索,每次搜索一位数。
- #include
- // 求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 f(x/10,k);//填空
- }
-
- int main()
- {
- int x = 23574;
- printf("%d\n", f(x,3));
- printf("%d\n", f(893275,2));
- }