gpt4 book ai didi

c - C 中的递归函数,返回给定数字右侧的第 n 位数字

转载 作者:行者123 更新时间:2023-11-30 19:50:54 24 4
gpt4 key购买 nike

函数intdigit(int number,intposition)必须是递归并返回从右侧开始位置“position”中“number”的数字。因此,在我的代码中,其中 number=5864 且position=3 的函数应返回“8”。这是主要代码。

#include <stdio.h>

int digit(int number,int position);

int main (){
int number=5864, position=3, result;
result=digit(number,position);
printf("result: %d\n",result );
system("pause");

return 0;
}

int digit(int number,int position){}

我知道这个问题已经被问过,但我真的很难让它递归。感谢您的关注。

最佳答案

对于递归定义,您需要两件事 - 一条关于如何继续递归的规则,以及一条关于如何停止递归的规则。对于此用例,您可以将这些规则形式化如下:

  • 如果position == 1,则返回最右边的数字
  • 如果 position > 1,则将 number 除以 10 并减少位置

或者,在 C 代码中:

int digit(int number, int position) {
if (position == 1) {
return number % 10;
}
return digit(number / 10, --position);
}

注意:此代码有点简单,并且不处理无效输入。非正的位置会将这段代码发送到无限递归中。

关于c - C 中的递归函数,返回给定数字右侧的第 n 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53981782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com