一个简单的贪心问题,用c++解决 思路: 需要找零的钱从大面值的开始减,如果不够减就换小面值的钱继续减,知道剩下找零的钱减到零为止。

#include<bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	int rest = 1024 - n;
	int nums = 0;
	vector<int> money = { 64, 16, 4, 1 };
	for (int i = 0; i < 4;) {
		if (rest - money[i] < 0) {
			i++;
			continue;
		}
		else {
			rest -= money[i];
			nums++;
		}
	}
	cout << nums << endl;
	return 0;
}