美文网首页
1854: zbj的可乐

1854: zbj的可乐

作者: Celia_QAQ | 来源:发表于2019-04-12 19:41 被阅读0次

    Time Limit: 1 Sec  Memory Limit: 128 MB

    Submit: 86  Solved: 18

    [Submit][Status][Web Board]

    Description

    zbj最近特别想喝可乐,然而可口可乐有一个万年梗的活动就是....四个瓶盖换一瓶可乐的活动 

    现在zbj想喝n瓶可乐,一瓶可乐需要k元,问他最少需要花多少钱? 

    ps.一瓶可乐只有一个瓶盖..当然这不是脑筋急转弯,zbj并不能向别人借瓶盖。

    Input

    有多组样例,每一行输入一个正整数n,k(0<=n<=100000000  1<=k<=200) (请不要嘲讽zbj能喝...我们要友好和谐)

    Output

    每一行输出一个正整数表示zbj最小需要花的钱

    Sample Input

    1597 3

    Sample Output

    3594

    ZCMU-1854-zbj的可乐 - ZCMUCZX的博客 - CSDN博客

    【解析】这道题其实有个公式,sum=n+(n-1)/(k-1),这里k是指几个瓶盖能换一瓶饮料,n是指买多少瓶饮料就能获得sum瓶的饮料。这里就是我们知道了sum,来推n了,这里是3*sum=4*n,如果3sum除4不能整除的话,就要向下取整之后再加个1才可以。不然的话比说如果sum是8,8*3是24,24+1为25,25除4是6了,而显然6瓶可乐肯定不能换8瓶,需要7瓶才能换,所以要再加1.--------------------- 作者:MooAiFighting 来源:CSDN 原文:https://blog.csdn.net/ZCMUCZX/article/details/54744763 版权声明:本文为博主原创文章,转载请附上博文链接!

    *4 1(第一次需要买4瓶,然后会送一瓶)3 1(后面都是只需要买3瓶,然后会送一瓶)3 13 1。。。需要考虑到数据类型int不够还需要考虑到如果n<=4的情况*/


    #include<queue>

    #include<stdio.h>

    #include<iostream>

    #include<cstring>

    #include<algorithm>

    using namespace std;

    /*int b[3],book[101][101][101],half;

    struct node{

    int cur[3],s;

    }p,temp;

    void bfs{

    queue<node> q;

    p.cur[0]=b[0];

    }*/

    int main(){

    long long n,num,s;

    int k;

    while(~scanf("%lld%d",&n,&k)){

    if(n!=0){

    num=(n*3)+1;

    if(num%4==0)

    num/=4;

    else num=num/4+1;

    s=num*k;

    printf("%lld\n",s);

    }

    else if(n==0)

    printf("0\n");

    }

    return 0;

    }

    相关文章

      网友评论

          本文标题:1854: zbj的可乐

          本文链接:https://www.haomeiwen.com/subject/kdhhwqtx.html