练习---计算最少钞票的数量
题目描述有1元、5元、10元、20元、100元、200元的钞票无穷多张,现在使用这些钞票支付x元,最少需要多少张?例如x = 628元最佳支付方法:3张200元,1张20元,1张5元,3张1元,共8张。解题思路:使用贪心思想,每次选取最大面额的钞票,这样保证使用最少的张数//贪心算法 计算钞票void test2() {int RMB[] = { 200,100,20,10,...
·
题目描述
有1元、5元、10元、20元、100元、200元的钞票无穷多张,现在使用这些钞票支付x元,最少需要多少张?
例如x = 628元
最佳支付方法:
3张200元,1张20元,1张5元,3张1元,
共8张。
解题思路:
使用贪心思想,每次选取最大面额的钞票,这样保证使用最少的张数
//贪心算法 计算钞票
void solution() {
int RMB[] = { 200,100,20,10,5,1 };//人民币的数值
int count = 0;//最少需要多少张
int x;
cin >> x;
for (int i = 0; i < 6; i++) {
int use = x / RMB[i];
count += use;
x = x - RMB[i] * use;
printf("需要支付%d的面额%d张, ", RMB[i], use);
printf("剩余需要支付的金额为:%d\n", x);
}
cout << count << endl;
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)