日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Code Pratice】—— 递增三元组、比酒量、成绩分析

發布時間:2024/1/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Code Pratice】—— 递增三元组、比酒量、成绩分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 | 遞增三元組
    • 題目
    • 思路
    • 邏輯代碼
  • 2 | 比酒量
    • 題目
    • 思路
    • 邏輯代碼
  • 3 | 成績分析
    • 題目
    • 思路
    • 邏輯代碼

1 | 遞增三元組

題目

給定三個整數數組

A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN],

請你統計有多少個三元組(i, j, k) 滿足:

1 <= i, j, k <= N Ai < Bj < Ck

輸入格式
第一行包含一個整數N。
第二行包含N個整數A1, A2, … AN。
第三行包含N個整數B1, B2, … BN。
第四行包含N個整數C1, C2, … CN。

對于30%的數據,1 <= N <= 100
對于60%的數據,1 <= N <= 1000
對于100%的數據,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000

輸出格式
一個整數表示答案

例子
輸入

3 1 1 1 2 2 2 3 3 3

輸出
27

思路

只需要對比前后兩個元素的大小關系,累加個數即可

邏輯代碼

int IncTriples(int i_uNum, vector<vector<int> >& i_uArr) {int res = -1;if (1 > i_uNum){return res;}res = 0;for (int i = 0; i < i_uNum; i++){for (int j = 0; j < i_uNum; j++){for (int k = 0; k < i_uNum; k++){if ((i_uArr[0][i] <= i_uArr[1][j]) && (i_uArr[1][j] <= i_uArr[2][k])){res++;}}}}return res; }

2 | 比酒量

題目

有一群海盜(不多于20人),在船上比拼酒量。過程如下:打開一瓶酒,所有在場的人平分喝下,有幾個人倒下了。再打開一瓶酒平分,又有倒下的, 再次重復…
直到開了第4瓶酒,坐著的已經所剩無幾,海盜船長也在其中。當第4瓶酒平分喝下后,大家都倒下了。
等船長醒來,發現海盜船擱淺了。他在航海日志中寫到:“…昨天,我正好喝了一瓶…奉勸大家,開船不喝酒,喝酒別開船…”

請你根據這些信息,推斷開始有多少人,每一輪喝下來還剩多少人。
如果有多個可能的答案,請列出所有答案,每個答案占一行。
格式是:人數,人數,…
例如,有一種可能是:20,5,4,2,0

思路

理解題目,得到三個關鍵點

  • 不多于20人 --> 第一輪最多20人
  • 第四瓶酒后全倒下了 --> 一共只喝了四輪
  • 船長正好喝了一瓶,且是最后一輪倒下的 --> 四輪下來,船長分到的酒剛好一瓶
  • 從這三個關鍵點,很好得出這個數學題的解題思路 —— 計算從第一輪開始,每一輪都少N個人,計算最后是否加起來的酒等于1瓶

  • 第一輪酒最多20人
  • 第二輪最多也比第一輪少一人
  • 第三輪最多也比第二輪少一人
  • 第四輪最多也比第三輪少一人
  • 判斷這四輪加起來船長分到的酒是否等于一瓶
  • 邏輯代碼

    void CompareWineCapacity() {for (int i = 20; i >= 4; i--){for (int j = 4; j < i; j++){for (int k = 3; k < j; k++){for (int l = 2; l < k; l++){int Denominator = i * j * k * l;int Molecular = (j * k * l) + (i * k * l) + (i * j * l) + (i * j * k);if (Denominator == Molecular){cout << "res = [" << i << " " << j << " " << k << " " << l << "]" << endl;}}}}} }

    3 | 成績分析

    題目

    小藍給學生們組織了一場考試,卷面總分為100分,每個學生的得分都是一個0到100的整數。
    請計算這次考試的最高分、最低分和平均分。

    輸入格式
    輸入的第一行包含一個整數n,表示考試人數。
    接下來n行,每行包含一個0至100的整數,表示一個學生的得分。

    輸出格式
    輸出三行。
    第一行包含一個整數,表示最高分。
    第二行包含一個整數,表示最低分。
    第三行包含一個實數,四舍五入保留正好兩位小數,表示平均分。

    例子
    輸入

    7 80 92 56 74 88 99 10

    輸出

    99 10 71.29

    思路

    兩個思路

  • 先統計成績總和,再對成績進行排序得出最高分和最低分,再求平均分
  • 邊記錄最高分最低分,邊統計成績總和,最后求平均分
  • 邏輯代碼

    void LQ_Simple::PerformanceAnalysis(vector<int>& i_uArr) {int len = i_uArr.size();if (0 == len){cout << "Input parameter is unvalid." << endl;return;}int solution = 0;int ScoreMax = 0;int ScoreMin = 100;int ScoreSum = 0;float ScoreAver = 0.00;cout << "Please select Solutions[1, 2]: ";cin >> solution;switch (solution){case 1:{for (int i = 0; i < len; i++){ScoreSum += i_uArr[i];}Sort(i_uArr);ScoreMax = i_uArr[0];ScoreMin = i_uArr[len - 1];ScoreAver = ((float)ScoreSum / len);}break;case 2:{for (int i = 0; i < len; i++){ScoreSum += i_uArr[i];if (ScoreMax < i_uArr[i]){ScoreMax = i_uArr[i];}if (ScoreMin > i_uArr[i]){ScoreMin = i_uArr[i];}}ScoreAver = ((float)ScoreSum / len);}break;default:break;}cout << "The highest score = [" << ScoreMax << "]." << endl;cout << "The lowest score = [" << ScoreMin << "]." << endl;cout << "The average score = [" << fixed << setprecision(2) << ScoreAver << "]." << endl; }

    總結

    以上是生活随笔為你收集整理的【Code Pratice】—— 递增三元组、比酒量、成绩分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。