标签:数学 printf i+1 tmp 基础 stdio.h int 溢出 scanf
题意:
给出n个不大于1.0的小数序列,如{ 0.1, 0.2, 0.3, 0.4 },则共有10个分片(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) and (0.4)。现要求计算每个分片之和,即0.1 + 0.3 + 0.6 + 1.0 + 0.2 + 0.5 + 0.9 + 0.3 + 0.7 + 0.4 = 5.0.
思路:数学题,找规律
a[i]
|
0.1
|
0.2
|
0.3
|
0.4
|
0.5
|
在a[i]左侧的个数(包括a[i]本身)
|
1
|
2
|
3
|
4
|
5
|
在a[i]右侧的个数(包括a[i]本身)
|
5
|
4
|
3
|
2
|
1
|
下标i
|
1
|
2
|
3
|
4
|
5
|
#include <stdio.h> int main() { int n; double sum=0,tmp; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%lf",&tmp); //sum+=tmp*(i*(n-i+1));//错误 语句1 sum+=tmp*i*(n-i+1);//正确 } printf("%.2f\n",sum); return 0; }
标签:数学 printf i+1 tmp 基础 stdio.h int 溢出 scanf
原文地址:https://www.cnblogs.com/kkmjy/p/9533187.html