博客
关于我
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基础—6.Netty实现RPC服务三
查看>>
Netty基础—6.Netty实现RPC服务二
查看>>
Netty基础—7.Netty实现消息推送服务一
查看>>
Netty基础—7.Netty实现消息推送服务二
查看>>
Netty基础—8.Netty实现私有协议栈一
查看>>
Netty基础—8.Netty实现私有协议栈二
查看>>
Netty多线程 和 Redis6 多线程对比
查看>>
Netty学习总结(1)——Netty入门介绍
查看>>
Netty学习总结(2)——Netty的高性能架构之道
查看>>
Netty学习总结(3)——Netty百万级推送服务
查看>>
Netty学习总结(4)——图解Netty之Pipeline、channel、Context之间的数据流向
查看>>
Netty学习总结(5)——Netty之TCP粘包/拆包问题的解决之道
查看>>
Netty学习总结(6)——Netty使用注意事项
查看>>
Netty实现Http服务器
查看>>
Netty客户端断线重连实现及问题思考
查看>>
Netty工作笔记0001---Netty介绍
查看>>
Netty工作笔记0002---Netty的应用场景
查看>>
Netty工作笔记0003---IO模型-BIO-Java原生IO
查看>>
Netty工作笔记0004---BIO简介,介绍说明
查看>>
Netty工作笔记0005---NIO介绍说明
查看>>