Debug客栈
做一个爱分享的程序猿
Debug客栈
蓝桥杯-2017年省赛C++B组题5-取数位

友情提示:此篇文章大约需要阅读 1分钟43秒,不足之处请多指教,感谢你的阅读。订阅本站

求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));
	return 0;
}

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

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

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

解题算法

#include "iostream"
#include "algorithm"
 
// 求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));
	return 0;
}

解题答案

f(x/10, k)

赞赏
本文链接:https://www.debuginn.cn/2424.html
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可,转载请保留此文章链接
相关链接: 首页  |  引导页  |  赞助本站  |  @QQ  |  @微博  |  @Bilibili  |  @推特  |  @Github  |  阿里云活动
社会主义核心价值观: 富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善

发表评论

textsms
account_circle
email

Debug客栈

蓝桥杯-2017年省赛C++B组题5-取数位
求1个整数的第k位数字有很多种方法。以下的方法就是一种。 // 求x用10进制表示时的数位长度 int len(int x){ if(x<10) return 1; return len(x/10)+1; } // 取x的第k位数字 in…
扫描二维码继续阅读
2019-03-19