递归,错在何处?
#include<stdio.h>long jie(int a,int b)
{
return a=1?1:jie(a-1,b)*b/(a-1);
}
main()
{
int i,n,x,sum;
sum=0;
scanf("%d,%d",&n,&x);
for(i=0;i<=n-1;i++)
sum=sum+jie(i+1,x);
printf("\n%ld",sum);
}
改了可以运行,是结果不对?还是什么?或者因为scanf("%d,%d",&n,&x); 你输入两数字时中间必须加逗号
结果是很长的数字
我分析了一下想不出毛病来
是哦,SUM要定义LONG,晕菜了
不过结果不对
输入n是几结果就是几
该成DOUBULE,还是不对
可能是我定义的函数不对,可我看不出毛病来
#include<stdio.h>
double jie(int a, float b)
{
return a=1?1:jie(a-1,b)*b/(a-1);
}
main()
{
int i,n;
double x,sum;
sum=0;
scanf("%d,%lf",&n,&x);
for(i=0;i<=n-1;i++)
sum=sum+jie(i+1,x);
printf("\n%lf",sum);
}