PAT A1104測試點2錯誤修正方法
1104 Sum of Number Segments (20分)
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For example, given the sequence { 0.1, 0.2, 0.3, 0.4 }
, we have 10 segments: (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)
.
Now given a sequence, you are supposed to find the sum of all the numbers in all the segments. For the previous example, the sum of all the 10 segments is 0.1 + 0.3 + 0.6 + 1.0 + 0.2 + 0.5 + 0.9 + 0.3 + 0.7 + 0.4 = 5.0
.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N, the size of the sequence which is no more than 105 . The next line contains N positive numbers in the sequence, each no more than 1.0
, separated by a space.
Output Specification:
For each test case, print in one line the sum of all the numbers in all the segments, accurate up to 2 decimal places.
測試點2出錯原因:新改的測試資料需要long double
型,
解決方法:將輸出值定義為long double
就行,輸入輸出格式符使用“%llf”
。
另外,注意i
起始位置不一樣,後面的處理演算法需要對應平移,具體如下:
1、對於i
從位置0開始,有關係ans += q[i] * (n - i) * (i + 1)
成立;
2、而對於i
從位置1開始,則有關係式ans += q[i] * i * (n + 1 - i)
成立。
#define _CRT_SECURE_NO_DEPRECATE //定義CRT安全無棄用
#include<iostream>
using namespace std;
const int N = 100010;
double q[N];
int main()
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%lf", &q[i]);
}
long double ans = 0;
for (int i = 0; i < n; i++) {
ans += q[i] * (n - i) * (i + 1);
//ans += q[i] * i * (n + 1 - i);
}
printf("%.2llf\n", ans);
return 0;
}
說明:原文參考部落格:https://blog.csdn.net/Kaisers_Q/article/details/108241539?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
相關文章
- Linux 時間錯誤的修正Linux
- 修正FIREFOX下批量上傳的錯誤Firefox
- 修正memcache.php中的錯誤示例PHP
- Python錯誤重試方法Python
- Python 之 錯誤,除錯和測試Python除錯
- 2020-12-15:【黑盒測試用例設計】測試方法之錯誤值猜測法
- 修正織夢CMS的RSS檔案的URL錯誤
- Select2.js錯誤點總結JS
- Python學習之錯誤除錯和測試Python除錯
- Go十大常見錯誤第2篇:benchmark效能測試的坑Go
- 2022年冬pat乙級考試題目及程式碼解析附部分錯誤原因
- pat乙級自我回顧:一般錯誤出現原因
- 控制元件測試功能點摘要2控制元件
- Oracle nvarchar2錯誤Oracle
- 測試—測試方法
- Oracle 11gRac 測試案例(四)叢集程式錯誤Oracle
- Fuzzm: 針對WebAssembly記憶體錯誤的模糊測試Web記憶體
- 平臺配置及測試錯誤提示及解決方案
- Mark W3C測試中我犯得錯誤
- L2-003 月餅 (25分)測試點2
- HTTP 錯誤 500.19- Internal Server Error 錯誤解決方法HTTPServerError
- dbfread報錯ValueError錯誤解決方法Error
- Select2 滑鼠點選空白處不消失簡單測試和解決方法
- 作業系統錯誤點作業系統
- 單元測試時靜態方法注意點
- 自動化測試難點解析:如何降低誤報率?
- python2 介面測試一般方法Python
- PbootCMS 404 錯誤解決方法boot
- 擁抱錯誤與嘗試
- 負載測試如何尋找"拐點"?使用哪種方法進行測試?負載
- 測試2
- 如何避免一份軟體測試報告中出現錯誤?測試報告
- (轉載 --- 中篇) 分散式系統測試那些事兒 - 錯誤注入分散式
- 介面測試讀取 Excel 中引數返回值全部錯誤Excel
- GO語言————5.2 測試多返回值函式的錯誤Go函式
- 測試方法
- dedecms提示500錯誤解決方法
- undefined reference to錯誤的解決方法Undefined