藍橋杯-取數位(2017-B-5)

標題:取數位

求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\n", f(x,3));
}

對於題目中的測試數據,應該打印5。

請仔細分析源碼,並補充劃線部分所缺少的代碼。

注意:只提交缺失的代碼,不要填寫任何已有內容或說明性的文字。

#include <iostream>
using namespace std;
// 求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));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章