递归寻找第n位数字

编写递归函数digit(n,j),返回整数n的从右边开始的第j位数字

首先来看非递归法,只需用n/(10^(j-1))%10即可

#include<stdio.h>
//编写递归函数digit(n,j),返回整数n的从右边开始的第j位数字 
int digit(int n,int j)
{
	int i,s=1,result;
	for(i=0;i<j-1;i++)
	{
		s*=10;
	}
	result=(n/s)%10;
	return result;
}
int main()
{
	int x,y;
	printf("请输入n和j的值:");
	scanf("%d%d",&x,&y);
	int rev=digit(x,y);
	printf("%d",rev);
	return 0;
}

 递归方法

int digit(int n,int j)
{
	if(j==1)
	{
		return n%10;
	}
	return digit(n/10,j-1);
}
int main()
{
	int x,y;
	printf("请输入n和j的值:");
	scanf("%d%d",&x,&y);
	int rev=digit(x,y);
	printf("%d",rev);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_55848732/article/details/132631311
今日推荐