ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2017年第八届蓝桥杯B组-第五题:取位数

2022-02-20 12:01:46  阅读:196  来源: 互联网

标签:include 补全 int len 蓝桥 位数 填空 2017 源代码


本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填空部分出错外,还需注意是否因在复制后有改动非填空部分产生错误。

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

请仔细分析源码,填写划线部分缺少的内容。

源代码

C

#include <stdio.h>
// 求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));
    printf("%d\n", f(893275,2));
}

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M
    #include <stdio.h>
     
    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;      //例:f(23574,3) 
        return f(x/10,k);                 //if(len(x)-k==0)满足,求出来的是x的最低位 
    }                                     //因为23574的第三位并不是最低位,需要/10,利用递归 
        
    int main()
    {
        int x = 23574;
        printf("%d\n", f(x,3));
        printf("%d\n", f(893275,2));
    }

标签:include,补全,int,len,蓝桥,位数,填空,2017,源代码
来源: https://blog.csdn.net/weixin_60090880/article/details/123028896

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有