代码填空
// 求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;
}
这个题的官方答案是 f(x/10,k)
而我的答案是 x%(int)pow(10,k)/(int)pow(10,k-1)
结果都是对的,总觉得去年给我判错了所以成绩那么差
本文探讨了通过递归函数求解整数在10进制下的位数,并介绍了两种不同的方法来获取一个数的特定位上的数字。一种方法是通过不断除以10并递归地减少位数,另一种则是利用幂运算直接提取指定位置的数字。
4万+

被折叠的 条评论
为什么被折叠?



