42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
#include <cstdio>
|
||
|
||
// 给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。
|
||
// 请你计算并返回该式的最大值。
|
||
int maxProduct(int nums[], int numsSize) {
|
||
int MaxNumber = 0;
|
||
for (int i = 0; i < numsSize; ++i) {
|
||
for (int j = 0; j < numsSize; ++j) {
|
||
if (i == j) continue;
|
||
if ((nums[i] - 1) * (nums[j] - 1) > MaxNumber) {
|
||
MaxNumber = (nums[i] - 1) * (nums[j] - 1);
|
||
}
|
||
}
|
||
}
|
||
return MaxNumber;
|
||
}
|
||
|
||
int main() {
|
||
while (true) {
|
||
int numsSize;
|
||
printf("[INFO] 请输入数组大小: ");
|
||
scanf("%d", &numsSize);
|
||
if (numsSize == -1) break;
|
||
if (numsSize <= 1) {
|
||
printf("[WARNING] 无法完成计算,最少需要2位数\n\n");
|
||
continue;
|
||
}
|
||
getchar();
|
||
printf("[INFO] 请输入数组内容(中间使用逗号隔开): ");
|
||
int nums[numsSize];
|
||
for (int i = 0; i < numsSize - 1; ++i) {
|
||
scanf("%d,", &nums[i]);
|
||
}
|
||
scanf("%d", &nums[numsSize - 1]);
|
||
getchar();
|
||
// upload data to maxProduct function
|
||
printf("[OUTPUT] 输出结果: %d\n", maxProduct(nums, numsSize));
|
||
printf("\n");
|
||
}
|
||
printf("[SYSTEM] 已退出\n");
|
||
return 0;
|
||
} |