如题:
输入两个数字 x 和 n,其中 x 为double类型, n 为int类型。
样本输入:0.5 12
样本输出:0.33
#include<stdio.h>
double fn(double x,int n);
int main()
{
double x;
int n;
scanf("%lf %d",&x,&n);
printf("%.2f\n",fn(x,n));
return 0;
}
#include<math.h>
double fn(double x,int n)
{
double f;
if(1==n){f=x;}
else{f=pow(-1,n-1)*pow(x,n)+fn(x,n-1);}
return f;
}
上网查了才知道原来头文件可以不用写在开头,只是写下面的话上面就用不了了。
原本以为我的递归可以了,但一做题就知道还是不行。
1、终止语句里不用return,函数里本身有return,对于最后一步来说,这个函数的return是给倒数第二步的,希望我能理解。
2、自相似体中要写出“一步”,不能什么都不写,在写的时候要清楚题目中的“一步”是指什么,像这题中的pow(-1,n-1)*pow(x,n)
然后再上fn这个自相似体。