已知总和是51242,加数分别是188 98 180 258 99求这几个加数的个数分别是多少
这题没有唯一答案,任意取一个数,用它减去这个数,让后继续,直到符合要求
暴力解法
#include <iostream>
using namespace std;
int main()
{
int sum = 51242, a[5] = {188, 98, 180, 258, 99}, i[5];
for (i[0] = 1; i[0] < sum / a[0]; i[0]++)
{
for (i[1] = 1; i[1] <= sum / a[1]; i[1]++)
{
for (i[2] = 1; i[2] < sum / a[2]; i[2]++)
{
for (i[3] = 1; i[3] < sum / a[3]; i[3]++)
{
for (i[4] = 1; i[4] < sum / a[4]; i[4]++)
{
if (a[0] * i[0] + a[1] * i[1] + a[2] * i[2] + a[3] * i[3] + a[4] * i[4] == sum)
cout << i[0] << ' ' << i[1] << ' ' << i[2] << ' ' << i[3] << ' ' << i[4] << endl;
}
}
}
}
}
return 0;
}