华为研发工程师编程题及答案.pdfVIP

  • 79
  • 0
  • 约3.51千字
  • 约 4页
  • 2019-07-20 发布于四川
  • 举报
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水 瓶,她最多可以换多少瓶汽水喝?”答案是5 瓶,方法如下:先用9 个空瓶子换3 瓶汽水, 喝掉3 瓶满的,喝完以后4 个空瓶子,用3 个再换一瓶,喝掉这瓶满的,这时候剩2 个空 瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用 3 个空瓶子换一瓶满 的还给老板。如果小张手上有n 个空汽水瓶,最多可以换多少瓶汽水喝? 1 /* 2 递归问题 3 3 个瓶子换1 瓶水+1 个空瓶子,两个瓶子换1 瓶水+0 个空瓶子,1 个瓶子换0 瓶水。 4 f(1) = 0 5 f(2) = 1 6 f(3) = 1 7 f(4) = f(2)+1 //4 个瓶子,其中3 个可以换1 瓶水+1 个空瓶,所以是f(2)+1 8 f(5) = f(3)+1 //3 个瓶子换1 瓶水+1 个空瓶,所以是f(3)+1 9 ... 10 f(n) = f(n-2)+1 */ 11 #include iostream 12 13 using namespace std; 14 15 int f(int n) 16 { 17 if(n==1) return 0; 18

文档评论(0)

1亿VIP精品文档

相关文档