• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

The Coco-Cola Store C(Contest #3 )

      Once upon a time, there is a special coco-cola store. If you return three empty bottles to the shop, you’ll get a full bottle of coco-cola to drink. If you have n empty bottles right in your hand, how many full bottles of coco-cola can you drink?

      Input There will be at most 10 test cases, each containing a single line with an integer n (1 ≤ n ≤ 100). The input terminates with n = 0, which should not be processed.

      Output For each test case, print the number of full bottles of coco-cola that you can drink. Spoiler Let me tell you how to drink 5 full bottles with 10 empty bottles: get 3 full bottles with 9 empty bottles, drink them to get 3 empty bottles, and again get a full bottle from them. Now you have 2 empty bottles. Borrow another empty bottle from the shop, then get another full bottle. Drink it, and finally return this empty bottle to the shop!

      Sample Input 3 10 81 0

      Sample Output 1 5 40

      不懂算法也会做这题,看了题目,在稿纸上写了几步结果,发现它很有规律,

那就是n=1时,f(n)=0;n>1时,f(2)=1,f(3)=1,f(4)=2,···,f(81)=40,···,所以f(n)=n/2;然后就完事了。

   

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
	int t=0,n;
	while(t<10)
	{
		scanf("%d",&n);
		if(n==0)
			break;
		if(n==1)
			printf("0\n");
		if(n==2||n>2)
			printf("%d\n",n/2);
			t++;
	}
	return 0;

}

 

posted on 2015-07-16 22:05  tony-cao  阅读(137)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3