读书人

递归求解解决方案

发布时间: 2013-07-08 14:13:00 作者: rapoo

递归求解
为什么输出的全是0.00000~,没有数字?
#include "stdio.h"
int pow(int x,int n)
{
if(n == 0 && x == 0)
return 0;
if(n == 0 && x != 0)
return 1;
else
return x*pow(x,n-1);
}

int main()
{
float f=pow(2,23)/pow(2,30);
printf("第23天的莲花占莲花池的%2.30f\n",f);
return 0;
} printf 递归
[解决办法]
整数相除就没了
你应该
float f=((float)pow(2,23))/pow(2,30);
[解决办法]


#include "stdio.h"
float pow(int x,int n)//整数相除会取整的。。就变为0了。。可以把返回类型改为float。。
{
if(n == 0 && x == 0)
return 0;
if(n == 0 && x != 0)
return 1;
else return x*pow(x,n-1);
}

int main()
{
float f=pow(2,23)/pow(2,30);
printf("第23天的莲花占莲花池的%2.30f\n",f);
return 0;
}

读书人网 >C++

热点推荐