返回组成它的数字之和,函数实现n^k,使用递归实现

//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,
//例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
#include<stdio.h>
int DigitSum(int n)
{
	int sum=0;
	if(n==0)
		return 0;
	while(n)
	{
		sum=n%10+DigitSum(n/10);
		return sum;
	}
}
void main()
{
	int Number;
	printf("请输入一个非负整数\n");
	scanf("%d",&Number);
	printf("Number=%d\n",DigitSum(Number));
}

//编写一个函数实现n^k,使用递归实现
#include<stdio.h>
#include <stdlib.h>
double fun(int n,int x)
{
	if(n==0)
	{
		printf("输入的Number值有误\n");
		exit(-1);
	}
	else if(x==0)
		return 1;
	else if(x>=1)
	{
		while(x--)
		{
			return n*fun(n,x);
		}
	}
	else
	{
		while(x++)
		{
			return (1.0/n)*fun(n,x);
		}
	}
	return 0;
}
void main()
{
	int Number,count;
	double value;
	printf("请输入Number和count的值\n");
	scanf("%d%d",&Number,&count);
	value=fun(Number,count);
	printf("value=%f\n",value);

}

你可能感兴趣的:(使用递归实现,数字之和,应该返回1+7+2+9,函数实现nk)