专栏首页架构说365天刷题第二天-汽水瓶问题

365天刷题第二天-汽水瓶问题

题目信息

  • 链接:汽水瓶
  • 来源:Interview Question
  • 难度:Easy

一、题目描述

有这样一道智力题:

“某商店规定:三个空汽水瓶可以换一瓶汽水。

如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

二、举例

小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”

答案是5瓶,

方法如下:

  • 先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,
  • 用3个再换一瓶,喝掉这瓶满的,
  • 这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。

三、解题思路

第一轮

空瓶个数n

汽水瓶个数

剩余空瓶

1

10

3

1

2

4

1

1

3

2

四、参考代码

c++递归版本

五、回顾

六、 举一反三

举一反三 --从“汽水兑换”案例,看你能不能当产品经理?

话说有一小卖部,1瓶汽水卖2块钱,2个空瓶可以兑换1瓶汽水,4个瓶盖也可以兑换1瓶汽水。 请问,10块钱最多可以喝多少瓶汽水?”

架构性思维能力

架构性思维能力,即指能够自上而下、先于具体问题而在系统层面解决问题的能力。

例如,近期天气变化大而你需要驾车出远门,你能提前规划行驶路线、绕开事故黑点、避开未知风险。

在产品工作上,你能在面对多分支复杂场景设计之时,高屋建瓴地确立系统性原则和底层逻辑;

你能在设计大型系统之初,依据业务、产品和技术架构需求,理清各模块边界,提前消除实际开发中的重度模糊区域。

架构性思维与推理性思维的差异在于:

体现在汽水兑换这个案例上,有可能便是这样:

举一反三 --不断递归变多情况

古印度国王舍罕酷爱下棋,他打算重赏国际象棋的发明人宰相西萨·班·达依尔。 这位聪明的大臣指着象棋盘对国王说:“陛下,我不要别的赏赐, 请您在这张棋盘的第一个小格内放入一粒麦子,在第二个小格内放入两粒, 第三小格内放入四粒,以此类推,每一小格内都比前一小格加一倍的麦子, 直至放满 64 个格子,然后将棋盘上所有的麦粒都赏给您的仆人我吧!

本文分享自微信公众号 - 架构说(JiaGouS),作者:程序员小王

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • c++系列之一构造函数

    这里有三个类,其中A,C类是B的父类,然后在Main函数中声明一个B类型的变量,然后程序的输出是这样的:

    程序员小王
  • 开源日志系统比较:scribe、chukwa、kafka、flume

    1. 背景介绍 许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下...

    程序员小王
  • 彻底搞定篇--B+Tree(1)

    从对应子树 继续寻找tree_search (k, root.1.child) 递归遍历

    程序员小王
  • 16.3 安装Tomcat

    安装Tomcat目录概要 cd /usr/local/src wget https://mirrors.tuna.tsinghua.edu.cn/apache/...

    运维小白
  • 分类回归树算法---CART

    一、算法介绍 分类回归树算法:CART(Classification And Regression Tree)算法也属于一种决策树,和之前介绍了C4.5算法相...

    智能算法
  • 分类回归树算法---CART

    一、算法介绍 分类回归树算法:CART(Classification And Regression Tree)算法也属于一种决策树,和之前介绍了C4.5算法相...

    智能算法
  • 【玩转腾讯云】使用云服务器进行生信数据分析

    很多小伙伴手头有生信数据分析,但苦于没有服务器,没法完成自己需要的数据分析,特别是处于学习阶段的同学。这里,向大家推荐一下使用腾讯云CVM服务器,按量计费进行数...

    用户1075469
  • 12. SpringCloud实战项目-搭建管理后台

    https://gitee.com/renrenio/renren-fast.git

    悟空聊架构
  • WKWebView 白屏问题

    czjwarrior
  • 8、单选按钮(JRadioButton)和复选框(JCheckBox)

    单选按钮(JRadioButton)和复选框(JCheckBox)       实现一个单选按钮(或复选框),此按钮项可被选择或取消选择,并显示其状态。JRad...

    YGingko

扫码关注云+社区

领取腾讯云代金券