数字递归输出

数字递归输出

一个朋友遇到一个不是很熟悉的问题,对于新手或许有些帮助,没有其他检验操作,只是递归.

详情

题目1要求将一个正整数按序输出,要去使用递归.
eg.input 12345
   output 1-2-3-4-5
#include <stdio.h>  
#include <stdlib.h>  
#include <math.h>  

int fn(int n)  
{  
    
	int s=0;
	int y=0;
	s=n/10;
	y=n%10;
	if(s!=0)
	{
		fn(s);
		printf("-%d",y);
	}
	else
	{
		printf("%d",y);
	}
}


int main()  
{  
    int m=1234;  
	fn(m);
    return 0;  
}  
题目2要求根据输入的数据,直到?截至,然后通过递归倒序输出.
eg. input 1234567?
    output 7654321
#include"iostream"
using namespace std;

void fn(char* s){
	char *p=s+1;
	if(*s!='\0'){
		fn(p);
		cout<<*s;
	}
	
}

int main(){
	char a[100];
	int i=0;
	cin>>a[i];
	char t;
	while(a[i]!='?')
	{
		cin>>a[++i];
	}
	a[i]='\0';
	char *p=a;
	fn(p);	
	return 0;
}
posted @ 2018-01-15 11:14  王坤1993  阅读(392)  评论(0编辑  收藏  举报