【题目描述】
在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。
【输入】
正整数n和k。
【输出】
一个数字。
【输入样例】
31859 3
【输出样例】
8
这题的递归出口是我把flag==是递归出口 :这里要理解下递归出口,也就是这个递归中断了,也就是不在往下递归调用了
那么它就会逐层返回了
#include<iostream>
#include<algorithm>
using namespace std;
int flag=0;
void f(int n,int k)
{
flag++;
if(flag==k)
{
cout<<n%10<<endl;
return ;
}
else
f(n/10,k);
}
int main()
{
int n,k;
cin>>n>>k;
f(n,k);
return 0;
}
这个是用的带返回值的函数其实是一个道理只是在递归到几层以后会每一层往上返回的
#include<iostream>
using namespace std;
int calculate(int n,int k);
int main()
{
int n,k;
cin>>n>>k;
cout<<calculate(n,k)<<endl;
return 0;
}
int calculate(int n,int k)
{
k--;
if(k==0)
return n%10;
else
return calculate(n/10,k);
}