华为机试真题2017

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 19:22   675   0

1.汽水瓶问题
题目描述:

有这样一道智力题:“某商店规定:三个空气水瓶可以换一瓶汽水。小张手上有是个空汽水瓶,他最多可以换多少平汽水喝?”答案是5瓶,方法如下:先用9个空汽水瓶换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借你一瓶汽水,喝掉这瓶满的,喝完后用3个空瓶子饭一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

思路是:

1.初始currentKongPing=n个瓶子,已喝饮料数countYingLiao=0;

2.第一次换饮料时:换得饮料数intPre=currentKongPing%3   剩余空瓶intPro=n/3 

3.喝完后空瓶数量更新为“换得饮料数”+“剩余空瓶”,

即currentKongPing=intPre+intPro

当前已喝饮料=上一步已喝饮料+换得饮料

即countYingLiao=countYingLiao+intPre

4.继续第二次换饮料,转至第二步

#include <stdio.h>
int coutPingZi(int n)
{
 int currentKongPing;
 int countYingLiao;
 int interPre;
 int interPro;
 currentKongPing = n;//初始时空瓶子数量等于n
 countYingLiao = 0;
 while (currentKongPing)
 {
  if (cu
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP