當(dāng)前位置:
首頁 >
[蓝桥杯2018决赛]阅兵方阵-模拟,枚举
發(fā)布時(shí)間:2023/12/4
38
豆豆
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯2018决赛]阅兵方阵-模拟,枚举
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
x國要參加同盟閱兵活動(dòng)。
主辦方要求每個(gè)加盟國派出的士兵恰好能組成 2 個(gè)方陣。
x國發(fā)現(xiàn)弱小的 y國派出了130人的隊(duì)伍,他們的士兵在行進(jìn)中可以變換2種隊(duì)形:
130 = 81 + 49 = 9^2 + 7^2
130 = 121 + 9 = 11^2 + 3^2
x國君很受刺激,覺得x國面積是y國的6倍,理應(yīng)變出更多隊(duì)形。
于是他發(fā)號(hào)施令:
我們要派出一支隊(duì)伍,在行進(jìn)中要變出 12 種隊(duì)形!!!
手下人可慘了,要忙著計(jì)算至少多少人才能組成 12 種不同的雙方陣。
請(qǐng)你利用計(jì)算機(jī)的優(yōu)勢(shì)來計(jì)算一下,至少需要多少士兵。
輸出
輸出一個(gè)整數(shù)表示答案
代碼如下:
#include <iostream> #include <cmath> using namespace std;int main() {for (int i = 1;; i++) {int cnt = 0;for (int j = 1; j * j < i; j++) {int k = sqrt(i - j * j);if (k * k + j * j == i)cnt++;if (cnt == 24) {//例如9 = 1+8和9 = 8+1是同一種隊(duì)形,所以是24cout << i << endl;return 0;}}}return 0; } #include <iostream> #include <cmath> using namespace std;int main() {for (int i = 1;; i++) {int cnt = 0;for (int j = 1; j * j < i; j++) {double k = sqrt(i - j * j);if (k * k + j * j == i && k == (int)k)cnt++;if (cnt == 24) {//例如9 = 1+8和9 = 8+1是同一種隊(duì)形,所以是24cout << i << endl;return 0;}}}return 0; }總結(jié)
以上是生活随笔為你收集整理的[蓝桥杯2018决赛]阅兵方阵-模拟,枚举的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。