zoukankan      html  css  js  c++  java
  • 第八届蓝桥杯省赛B组c++_取数位

    求1个整数的第k位数字有很多种方法。

    以下的方法就是一种。

    // 求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
    ", f(x,3));  
        return 0;  
    }  
    对于题目中的测试数据,应该打印5。

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

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

    【分析】递归+数位基本操作

            每轮操作将待取数位的整数n除以10取整,直到其最后一位t为n的第k位,则t即为所求。

    #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;
    return f(x/10,k);  //填空
    }
    int main()
    {
    int x = 23574;
    printf("%d
    ", f(x,3));
    return 0;
    }
    可以说是当时的一道送分题

  • 相关阅读:
    模拟器分辨率收集
    6. 蜂鳴器
    5. 伺服馬達
    4. 流水燈
    3. 序列埠的輸出以及按鈕消抖
    2. 沒有按鈕的電路是沒有靈魂的
    1. 點亮一個LED燈
    ARDUINO準備工作
    vritualenvwrapper的基本操作
    蠻力法兌換零錢及其優化
  • 原文地址:https://www.cnblogs.com/hcd-dyh/p/8683549.html
Copyright © 2011-2022 走看看