C++学习之路 | PTA乙级—— 1070 结绳 (25 分)(精简)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                C++学习之路 | PTA乙级—— 1070 结绳 (25 分)(精简)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                1070 結繩 (25 分)
 給定一段一段的繩子,你需要把它們串成一條繩。每次串連的時候,是把兩段繩子對折,再如下圖所示套接在一起。這樣得到的繩子又被當成是另一段繩子,可以再次對折去跟另一段繩子串連。每次串連后,原來兩段繩子的長度就會減半。
 rope.jpg
 給定 N 段繩子的長度,你需要找出它們能串成的繩子的最大長度。
 輸入格式:
每個輸入包含 1 個測試用例。每個測試用例第 1 行給出正整數 N (2≤N≤10
 ?4
 ?? );第 2 行給出 N 個正整數,即原始繩段的長度,數字間以空格分隔。所有整數都不超過10
 ?4
 ?? 。
 輸出格式:
在一行中輸出能夠串成的繩子的最大長度。結果向下取整,即取為不超過最大長度的最近整數。
 輸入樣例:
8
 10 15 12 3 4 13 1 15
 輸出樣例:
14
#include<iostream> #include<algorithm> #include<vector> using namespace std; int main() {int n,x;cin >> n;vector<int>v;for (int i = 0; i < n; i++){cin >> x;v.push_back(x);}sort(v.begin(), v.end());int sum = v[0];for (int i = 1; i < n; i++){sum = (sum + v[i]) / 2;}cout << sum;}總結
以上是生活随笔為你收集整理的C++学习之路 | PTA乙级—— 1070 结绳 (25 分)(精简)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: C++学习之路 | PTA乙级—— 1
- 下一篇: insert插入语句设置主键id回滚
