贪吃———1005 最大最小钱数

题目:1005,

题意:已知5种特定角的值分别为1,5,10,50,100;要求根据数P和a1,a2,a3,a4,a5的值求出最大最小钱币数

思路:(1)最少数:从最大的面值开始计算,p/b[i]的值为100张数,p%b[i]余数为下次p值,

             (2)最大数:利用手中总值减去p值,得到的数k仍用最少数的方法求,得到的数用总张数减去即为最大张数

            

代码:

#include<iostream>
using namespace std;
int main()
{
    int t,p,min,max;
    int a[5];
    int r,sum,k,q;
int b[5]={1,5,10,50,100};
cin>>t;
    while(t--!=0)
    {
        sum=0;
min=0;
max=0;
k=0;
q=0;
        cin>>p;
        r=p;
        for(int j=0;j<5;j++)
        {
            cin>>a[j];
            sum=sum+b[j]*a[j];
q=a[j]+q;
        }
        for(int i=4;i>=0;i--)
        {
            if(r/b[i]<a[i])
            {
                min=min+r/b[i];
                r=r%b[i];
            }
            else
            {
                min=min+a[i];
                r=r-a[i]*b[i];
            }
        }
        if(r!=0)
        {
            cout<<"-1"<<" "<<"-1"<<endl;
        }else
        {
            k=sum-p;
            for(int i=4;i>=0;i--)
            {
                if(k/b[i]<a[i])
                {
                    max=max+k/b[i];
                    k=k%b[i];
                }
                else
                {
                    max=max+a[i];
                    k=k-a[i]*b[i];
                }
            }
            if(k==0)
            {
                max=q-max;
cout<<min<<" "<<max<<endl;
            }            
        }    


    }
return 0;
}


以下是一个使用App Inventor创建的简单贪吃球游戏的示例: 1. 首先,你需要在App Inventor中创建一个新的项目。 2. 在设计视图中,将屏幕分为网格,以便贪吃球可以在其中移动。你可以使用水平和垂直排列组件来创建网格。 3. 在组件列表中,找到并添加一个按钮组件,用于控制贪吃球的移动。 4. 添加一个图片组件,用于表示贪吃球。 5. 添加一个计时器组件,用于控制贪吃球的移动速度。 6. 在代码视图中,使用以下代码块来实现贪吃球的移动: ```shell 当按钮被点击时: 如果按钮是向上按钮,则将贪吃球向上移动一个网格。 如果按钮是向下按钮,则将贪吃球向下移动一个网格。 如果按钮是向左按钮,则将贪吃球向左移动一个网格。 如果按钮是向右按钮,则将贪吃球向右移动一个网格。 ``` 7. 添加一个计时器事件,用于控制贪吃球的移动速度。你可以根据需要调整计时器的间隔时间。 ```shell 当计时器定时触发时: 将贪吃球向当前移动方向移动一个网格。 ``` 8. 添加一个碰撞事件,用于检测贪吃球是否与食物碰撞。如果贪吃球与食物碰撞,则增加得分并重新生成食物。 ```shell 当贪吃球与食物碰撞时: 增加得分。 重新生成食物。 ``` 9. 添加一个结束游戏事件,用于检测贪吃球是否与边界碰撞或与自己碰撞。如果贪吃球与边界或自己碰撞,则游戏结束。 ```shell 当贪吃球与边界或自己碰撞时: 结束游戏。 ``` 10. 最后,你可以根据需要添加其他功能,例如计分板、难度级别等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值