为什么只有x=1,n=2的时候算出来的是对的,其它的都不对。

img

#include<stdio.h>
int acc(int n){
int f,i;
for(i=1;i<=n;i++)
for(f=0;f<n;f++){
f=f+i;}
return f;
}
float cal(float x,int n){
int m;
float num=1,s=0;
for(m=1;m<=n;m++){
num=num*x;
s=s+num/acc(m);}
return s;
}
int main(){
float x,y;
int n,i;
y=0;
scanf("%f%d",&x,&n);
for(i=1;i<=n;i++){
y=y+cal(x,i);
}
printf("%.2f",y);
return 0;
}

1+2+...+n只需要一个循环(i),f不用循环

img


要求x^n/acc(n),循环是求x^n,所以/acc(n)要在循环外

img