我對編碼相當陌生,所以我相信這是一個愚蠢的問題。對於一個類,我需要編寫一個算法來確定最少的變化量,以便在C++中創造一定數量的金錢。將數值數據讀入一個數組,然後將下一行讀入一個變量。 C++
此代碼需要從txt文件中讀取數字,以便第一行是硬幣類型(又名1美分,2美分,4美分等)。第二行是我想要分類的總數。然後第三行是一組新的硬幣類型,第四行是一個新的總數。一般模式仍在繼續。
txt文件看起來像 -
1 2 5
10
1 3 7 12
29
1 2 4 8
15
1 7 11
14
我輕鬆地創建的更改算法我自己,我有收到的第一行讀入到一個數組,然後下一行的問題要讀入一個變量。
我的代碼爲coinChange算法。
int coinChange(int coins[], int total, int size)
{
//Set high minimum
int min = 999999999;
//For all of the coins, see if it equals the value of total
for (int i = 0; i < size; i++) {
if (coins[i] == total) {
//If so return 1
return 1;
}
}
//Loop through
for (int j = 1; j <= total/2; j++) {
if ((coinChange(coins, j, size) + coinChange(coins, total - j, size)) < min) {
min = coinChange(coins, j, size) + coinChange(coins, total - j, size);
}
}
return min;
}
我試過使用fgets和fscanf沒有成功,所以任何建議都會非常有幫助。
您正在使用C++,因此請使用* C++。當'std :: vector'或其他容器可用時,不要使用C風格的數組。這將使您的代碼更簡單,不太可能產生愚蠢的錯誤,並打開整個世界的標準庫容器上運行的工具。 – tadman