#include <stdio.h>
#define MAXN 10
double f( int n, double a[], double x );
int main()
{
int n, i;
double a[MAXN], x;
scanf("%d %lf", &n, &x);
for ( i=0; i<=n; i++ )
scanf("%lf", &a[i]);
printf("%.1f\n", f(n, a, x));
return 0;
}
/* 你的代码将被嵌在这里 */
我的答案如下
double f( int n, double a[], double x ){
double sum=0.0;
for(int i=0;i<=n;i++){
double product=1;
for(int j=0;j<i;j++){
product*=x;
}
sum+=a[i]*product;
}
return sum;
}
计算 x ^ i 没必要 弄一个循环吧
这个试试
double f( int n, double a[], double x ){
double sum=0.0;
double product=1;
for(int i=0;i<=n;i++){
sum+=a[i]*product;
product *= x;
}
return sum;
}
修改如下,供参考:
/* 你的代码将被嵌在这里 */
double f(int n, double a[], double x) {
double sum = 0.0, product = 1.0;
for (int i = 0; i <= n; i++) {
if (i)
product *= x;
sum += a[i] * product;
}
return sum;
}
先判断a[i]是否为0,为0的话是不需要进行计算的
不知道你这个问题是否已经解决, 如果还没有解决的话:-----------------------------------------------------------------------------------------------------------------
请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。