所以,我正在创建一个硬币兑换算法,它采用 N 值和任意数量的面额,如果它没有 1,我必须自动包含 1。我已经这样做了,但是现在有一个缺陷,我有 2 个矩阵,我需要使用其中的 1 个。是否可以重写 S[i] 矩阵并仍然增加数组的大小....另外,我怎样才能找到最大面额和第二高的面额,直到最小的面额?我应该将其从最高到最低进行排序以使其更容易,还是有一种更简单的方法可以一个接一个地寻找它们?
int main()
{
int N,coin;
bool hasOne;
cout << "Enter the value N to produce: " << endl;
cin >> N;
cout << "Enter number of different coins: " << endl;
cin >> coin;
int *S = new int[coin];
cout << "Enter the denominations to use with a space after it" << endl;
cout << "(1 will be added if necessary): " << endl;
for(int i = 0; i < coin; i++)
{
cin >> S[i];
if(S[i] == 1)
{
hasOne = true;
}
cout << S[i] << " ";
}
cout << endl;
if(!hasOne)
{
int *newS = new int[coin];
for(int i = 0; i < coin; i++)
{
newS[i] = S[i];
newS[coin-1] = 1;
cout << newS[i] << " ";
}
cout << endl;
cout << "1 has been included" << endl;
}
//system("PAUSE");
return 0;
}