2019-01-15第八届蓝桥杯JavaB组取位数

题目:取数位

求1个整数的第k位数字有很多种方法。
以下的方法就是一种。


public class Main
{
    static int len(int x){
        if(x<10) return 1;
        return len(x/10)+1;
    }
    
    // 取x的第k位数字
    static int f(int x, int k){
        if(len(x)-k==0) return x%10;
        return ______________________;  //填空
    }
    
    public static void main(String[] args)
    {
        int x = 23513;
        //System.out.println(len(x));
        System.out.println(f(x,3));
    }
}

对于题目中的测试数据,应该打印5。

请仔细分析源码,并补充划线部分所缺少的代码。

注意:只提交缺失的代码,不要填写任何已有内容或说明性的文字。


答案*: f(x/10, k)

解题:

package 第五题取数位;

public class Solution {
    public static class Main
    {
        static int len(int x){
            if(x<10) {
                return 1;
            }
            return len(x/10)+1;
        }

        // 取x的第k位数字
        static int f(int x, int k){
            if(len(x)-k==0) {
                return x%10;
            }
            return len(x-1);//填空
        }

        public static void main(String[] args)
        {
            int x = 23513;
//            System.out.println(len(x));
            System.out.println(f(x,3));
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容