
我们得到了一个糖果[]数组,长度存储在“size”中。每个元素 candies[i] 都有一个 i 类型糖果的编号。目标是用任意金额购买尽可能多的糖果。条件如下 –
如果您购买类型 i 的 X[i] (0
X(j)
X(j)=0,没有购买j类型的糖果
我们通过例子来理解。
输入 – Arr[] = { 1,3,5,2,6,7 }。
输出 – 最大值可以购买的糖果 – 16
说明 – 购买类型 i { 0,3,5,2,6,0 }
的糖果>输入 – Arr[] = { 5,7,7,3,4 }.
输出 – 可以购买的最大糖果 – 10
解释 – 购买类型 i { 0,0,7,3,0 } 的糖果
以下程序中使用的方法如下
整数数组candies[]用于存储类型i的糖果数量。
变量’size’存储数组糖果的长度。
函数 maxCandies(int arr[], int n) 用于返回可购买的糖果总数。
首先假设我们买了最后一种糖果。 buy=arr[n-1]
从倒数第二个元素开始,for(i=n-2;i>=0;i–)
变量x存储当前类型可以购买的糖果数量。 x=arr[i] 或 buy-1,以较小者为准。
如果 x 不是 zeo,则将其添加到总数中。
如果总和大于之前购买的金额,则购买=x。
返回购买结果。
示例
实时演示
#include int maxCandies(int arr[], int n){ int bought = arr[n - 1]; int total = bought; // Starting from second last for (int i = n - 2; i >= 0; i--) { // Amount of candies of the current // type that can be bought int x = arr[i]= 0) { total += x; bought = x; } } return total;}int main(){ int candies[] = { 1,2,4,3,7 }; int size = 5; printf("Total Candies that can be bought: %d", maxCandies(candies, size)); return 0;}
输出
如果我们运行上面的代码,它将生成以下输出 –
Total Candies that can be bought: 13
以上就是最多可以购买的糖果数量的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444053.html
微信扫一扫
支付宝扫一扫