#include <stdio.h>
#include <stdlib.h>
int main()
{
const int n = 4;
int a[n] = {-8, -1, 2, 1};
int target = -4;//目标整数
int min = a[0] + a[1] + a[2] - target;//随意设置的一个min
int b[3];
for (int i = 0; i < n; i++)//三个for循环可以遍历数组里的所有三个数的组合
for (int j = i + 1; j < n; j++)
for (int k = j + 1; k < n; k++)
{
if (i != j && j != k && k != i)
{
int temp = a[i] + a[j] + a[k] - target;
if (abs(temp) < abs(min))
{
b[0] = a[i];
b[1] = a[j];
b[2] = a[k];
min = temp;//temp越小说明a[i] + a[j] + a[k]与target越接近
}
}
}
printf("%d+%d+%d=%d\n", b[0], b[1], b[2], b[0]+b[1]+b[2]);
return 0;
}
打印三个数相加和最接近目标整数的组合
最新推荐文章于 2022-01-21 12:26:53 发布