原題鏈接:PAT (Basic Level) Practice (中文)1049 數(shù)列的片段和
做前思考
1术唬、有兩種好方法:乘法公式sum=x * (n-i+1) * i吹散、加法
做后總結(jié)
1、一開始沒想好方法蓉媳,用的笨方法譬挚,測(cè)試點(diǎn)二和三超時(shí)。酪呻。
2减宣、測(cè)試點(diǎn)二:此處浮點(diǎn)累計(jì)要用更高精度的long double類型。
·乘法:
#include<stdio.h>
int main()
{
int n,i;
long double x,sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%Lf",&x);
sum+=x*(double)(n-i+1)*(double)i;
}
printf("%.2Lf\n",sum);
return 0;
}
·加法:
#include<stdio.h>
int main()
{
int n,i;
long double sum=0.0,x,num=0.0;
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%Lf",&x);
num+=(double)i*x;
sum+=num;
}
printf("%.2Lf\n",sum);
return 0;
}