1854: zbj的可乐

2019-04-12  本文已影响0人  Celia_QAQ

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;

}

上一篇下一篇

猜你喜欢

热点阅读