题目描述
x国要参加同盟阅兵活动。
主办方要求每个加盟国派出的士兵恰好能组成 2 个方阵。
x国发现弱小的 y国派出了130人的队伍,他们的士兵在行进中可以变换2种队形:
130 = 81 + 49 = 9^2 + 7^2
130 = 121 + 9 = 11^2 + 3^2
x国君很受刺激,觉得x国面积是y国的6倍,理应变出更多队形。
于是他发号施令:
我们要派出一支队伍,在行进中要变出 12 种队形!!!
手下人可惨了,要忙着计算至少多少人才能组成 12 种不同的双方阵。
请你利用计算机的优势来计算一下,至少需要多少士兵。
输出
输出一个整数表示答案
代码如下:
#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是同一种队形,所以是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是同一种队形,所以是24cout << i << endl;return 0;}}}return 0;
}