蓝桥杯 2017年省赛C++B组题5 取数位
求1个整数的第k位数字有很多种方法。 以下的方法就是一种。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // 求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。 请仔细分析源码,并补充划线部分所缺少的代码。 注意:只提交缺失的代码,不要填写任何已有内容或说明性的文字。 解题算法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #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) 关注微信公众号,第一时间获取最新内容,让我们一起变得更强!Debug客栈:订阅本站· 文章归档· 我的项目· 友情链接· 我的使用· 飞湾计划· 摄影展集· 我的主页· 知盈官网
以上内容来自博客订阅源,版权归原作者。关注作者后可以在 关注列表 第一时间查看作者文章。
登录后,加入这场讨论。
登录参与