ロック練習問題1-2

Xiaoyuの電気代

区分的関数

#include <iostream>
using namespace std;
int main()
{
    
    
    float k,sum=0;
    cin>>k;
        if(k>=401)
        {
    
    
            sum=sum+(k-400)*0.5663;
            k=400;
        }
        if(k>=151)
        {
    
    
            sum=sum+(k-150)*0.4663;
            k=150;
        }
        sum=sum+0.4463*k;
    sum=int(sum*10+0.5);
    sum=sum/10;
    cout<<sum;
    return 0;
}

不幸なジンジン

簡単な判断

#include <iostream>
using namespace std;
int main() {
    
    
    int max=8,index=0;
    int school,mom;
    for(int i=1;i<8;i++)
    {
    
    
        cin>>school>>mom;
        int temp=school+mom;
        if(temp>max)
        {
    
    
            max=temp;
            index=i;
        }
    }
    cout<<index;
    return 0;
}

ジンジン貯蓄プラン

(結果はdoubleを使用していることに注意してください。年末の1.2は小数を生成する可能性があります。そのようなテストデータがあるかどうかはわかりません)

#include <iostream>
using namespace std;
int main()
{
    
    
    int moneyInhand=0,moneyInmom=0;
    int cost;
    double sum=0;
    bool flag=true;//是否 不超预算
    for(int i=1;i<13;i++)
    {
    
    
        moneyInhand+=300;
        cin>>cost;
        if(moneyInhand<cost)
        {
    
    
            cout<<-i;
            flag=false;
            break;
        }
        else
        {
    
    
            moneyInhand=moneyInhand-cost;
            if(moneyInhand>=100)
            {
    
    
                moneyInmom+=(moneyInhand/100) *100;
                moneyInhand-=(moneyInhand/100)*100;
            }
        }
    }
    if(flag)
    {
    
    
        sum=double(moneyInmom)*1.2+moneyInhand;
        cout<<sum;
    }
}

鉛筆を買う

最初は購入ペンを組み合わせるというダイナミックな計画だと思いました...質問を真剣に読んでいません...長い間書いた後、orzの質問が正しくないこと
気付きました。何かあると思いましたが、何もありませんでした

#include <iostream>
using namespace std;
inline int mymin(int a,int b)//试图加速
{
    
    
   return a<b?a:b;
}
int main()
{
    
    
    int n;
    int k[5];
    int m[5];
    int minsum=1<<30;
    cin>>n>>k[1]>>m[1]>>k[2]>>m[2]>>k[3]>>m[3];
    for(int i=1;i<=3;i++)
    {
    
    
        int num=0,money=0;
        while(num<n)
        {
    
    
            num+=k[i];
            money+=m[i];
        }
        if(money<minsum)minsum=money;
    }
    cout<<minsum;
}

おすすめ

転載: blog.csdn.net/Kaiser_syndrom/article/details/103552487