目录
1,题目描述
题目大意
注意
2,思路
3,AC代码
4,解题过程
第一搏
第二搏
1,题目描述
- consecutive:连续不断的;
Sample Input:
4
0.1 0.2 0.3 0.4
Sample Output:
5.00
题目大意
计算所有连续区间内数字的和。
注意
- 题目中给出的序列是有序的,即不需要排序(排序了反而会出错。。。可能是我自己的问题~~>_<~~)
2,思路
找规律:
0.1,0.1 0.2,0.1 0.2 0.3,0.1 0.2 0.3
0.2,0.2 0.3,0.2 0.3
0.3,0.3
0.4;
----------------------------------------------------------
0.1*(4个*1次);
0.2*(3个*2次);
0.3*(2个*3次);
0.4*(1个*4次);
(o゜▽゜)o☆[BINGO!]
3,AC代码
代码量最少的一题o(* ̄▽ ̄*)ブ
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
int N;
scanf("%d", &N);
double data[100010], ans = 0.0;
for(int i = 1; i <= N; i++)
scanf("%lf", &data[i]);
for(int i = 1; i <= N; i++)
ans += data[i] * (N + 1 - i) * i;
printf("%.2f", ans);
return 0;
}
4,解题过程
第一搏
找规律鸭,找规律:
0.1,0.1 0.2,0.1 0.2 0.3,0.1 0.2 0.3
0.2,0.2 0.3,0.2 0.3
0.3,0.3
0.4;
----------------------------------------------------------
0.1*(4个*1次);
0.2*(3个*2次);
0.3*(2个*3次);
0.4*(1个*4次);
(o゜▽゜)o☆[BINGO!]
#include<bits/stdc++.h>
using namespace std;
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
int N;
scanf("%d", &N);
double data[N+1], ans = 0.0;
for(int i = 0; i < N; i++)
scanf("%lf", &data[i]);
sort(data, data + N);
for(int i = 0; i < N; i++){
ans += data[i] * (N + 1 - (i + 1)) * (i + 1);
}
printf("%.2f", ans);
return 0;
}
第二搏
理论上来说应该没毛病啊。
有可能是scanf的问题?
试了一下,还是没毛病。
和柳神的代码对比一下,,,多了个排序,莫非?
还真是。。。佛了(不清楚什么原因)