我面临一个问题。
#include <iostream>
using namespace std;
bool Check(int arr[], int size, int con)
{
for (int i = 0; i < size; i++)
{
if (arr[i] == con)
{
return true;
}
for (int j = i+1; j < size;j++)
{
if (arr[i]+arr[j] == con)
{
return true;
}
for (int k = j + 1; k < size; k++)
{
if (arr[i] + arr[j] + arr[k] == con)
{
return true;
}
for (int l = k + 1; l < size;l++)
{
if (arr[i] + arr[j] + arr[k] + arr[l] == con)
{
return true;
}
}
}
}
}
}
int main()
{
int size;
int con;
cout << "Enter desire size of array" << endl;
cin >> size;
cout << "ENter number" << endl;
cin >> con;
int *arr = new int[size];
for (int i = 0; i < size; i++)
{
cin >> *(arr + i);
}
if (Check(arr, size, con) == true)
{
cout << "YESSS!!";
}
else
{
cout << "NOOO!!";
}
}
我必须制作数组的子集并单独添加它们({1,2} = 1+2)。如果我得到与用户输入 (con) 匹配的结果,则输出将为 YES 或 NO。
现在我面临的问题是我不知道用户将输入多少尺寸。如果他/她输入数组的大小为 4,则需要 4 个循环。我的子程序是否适用于每种大小的数组?