博客
关于我
C语言经典题型——喝汽水问题
阅读量:520 次
发布时间:2019-03-08

本文共 566 字,大约阅读时间需要 1 分钟。

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水。这个问题是个经典的C语言问题,用简单的程序可以实现,如下:

#include
#include
#define N 20int Total(int num){ int x = N; int y = N; while (y > 1) { x += y / 2; y = y / 2 + y % 2; } return x;}int main(){ int i = N; int total=Total(i); printf("一共喝了 %d 瓶汽水!\n",total); system("pause"); return 0;}

这里定义了一个宏,是为了方便我们修改数据,如果以后需要计算其他的数据,只需要修改宏即可。main函数里用了一个简单的Total()函数,x是函数传入的值,y表示每次喝完水以后的瓶子。函数的核心是while循环,当瓶子数大于1时,对x进行加法运算,加上的数就是每次瓶子的数,由于会出现奇数的情况,为了不浪费瓶子,我们用y=y/2+y%2来进行瓶子的数的计算,直到最后瓶子数不大于1。最后返回x的值,即喝汽水的总数。

这个问题就简单的说到这儿吧,不要忘记继续努力哦!

转载地址:http://taanz.baihongyu.com/

你可能感兴趣的文章
Netty工作笔记0001---Netty介绍
查看>>
Netty工作笔记0002---Netty的应用场景
查看>>
Netty工作笔记0003---IO模型-BIO-Java原生IO
查看>>
Netty工作笔记0004---BIO简介,介绍说明
查看>>
Netty工作笔记0005---NIO介绍说明
查看>>
Netty工作笔记0006---NIO的Buffer说明
查看>>
Netty工作笔记0007---NIO的三大核心组件关系
查看>>
Netty工作笔记0008---NIO的Buffer的机制及子类
查看>>
Netty工作笔记0009---Channel基本介绍
查看>>
Netty工作笔记0010---Channel应用案例1
查看>>
Netty工作笔记0011---Channel应用案例2
查看>>
Netty工作笔记0012---Channel应用案例3
查看>>
Netty工作笔记0013---Channel应用案例4Copy图片
查看>>
Netty工作笔记0014---Buffer类型化和只读
查看>>
Netty工作笔记0015---MappedByteBuffer使用
查看>>
Netty工作笔记0016---Buffer的分散和聚合
查看>>
Netty工作笔记0017---Channel和Buffer梳理
查看>>
Netty工作笔记0018---Selector介绍和原理
查看>>
Netty工作笔记0019---Selector API介绍
查看>>
Netty工作笔记0020---Selectionkey在NIO体系
查看>>