c语言 返回整数n从右边开始数的第k个数 要求使用递归算法

c语言1.写一个函数digit(n,k),其中n、k为整数,k是n从右边开始数的第k位;函数的返回值为整数n的第k位上的数,当k<=0时,函数值为-1。在主函数main中... c语言

1.写一个函数digit(n,k),其中n、k为整数,k是n从右边开始数的第k位;函数的返回值为整数n的第k位上的数,当k<=0时,函数值为-1。在主函数main中实现n,k的输入和输出digit的返回值。
例如: digit(12567,2)=6
digit(12567,-2)=-1

要求:digit函数使用递归算法实现。
展开
 我来答
wcwanchang
2009-11-29 · TA获得超过189个赞
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
#include "iostream"
using namespace std;

int digit(int n,int k)
{
if(k <= 0)
return -1;
else if(k == 1)
return n%10;
else
{
return digit(n/10,k-1);
}
}

void main()
{
long int n;
int k;
cout<<"输入n和k,用空格隔开"<<endl;
cin>>n>>k;
cout<<digit(n,k)<<endl;
}
创作者HbmaSlLWHC
2019-09-30 · TA获得超过3708个赞
知道大有可为答主
回答量:3128
采纳率:33%
帮助的人:192万
展开全部
#include
"iostream"
using
namespace
std;
int
digit(int
n,int
k)
{
if(k
<=
0)
return
-1;
else
if(k
==
1)
return
n%10;
else
{
return
digit(n/10,k-1);
}
}
void
main()
{
long
int
n;
int
k;
cout<<"输入n和k,用空格隔开"<<endl;
cin>>n>>k;
cout<<digit(n,k)<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-11-29
展开全部
int digit(int n,int k)
{
if (k<=0) return -1;

else if (k>1) return digit(n/10,k-1);

else return n%10;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式