解题思路:
每次换购的瓶子a = bottle / 3
每次换购以后剩下的空瓶数为b
b= bottle / 3 + bottle % 3
以上两部进行循环
对a进行累加计数
用b来循环控制,并对b==2时候对累加器再加1
参考代码:
#include<stdio.h> int bottle_count(int bottle); int main() { int bottle, exchange_bottle[10],i = 0; scanf("%d",&bottle); while(bottle != 0) { exchange_bottle[i++] = bottle_count(bottle); scanf("%d",&bottle); } for(int j = 0 ; j < i ; j ++) { printf("%d\n",exchange_bottle[j]); } return 0; } int bottle_count(int bottle) { int havedrink = 0 , nowdrink; while(bottle > 1) { nowdrink = bottle / 3; //每次可以换购的数量 bottle = nowdrink + bottle % 3; //喝完后余下的空瓶 havedrink += nowdrink; //对换购的进行累加 if(bottle == 2) //如果还剩下两瓶再向店家要一瓶后喝完抵一瓶 { havedrink++; break; } } return havedrink; }
0.0分
1 人评分
C语言训练-斐波纳契数列 (C语言代码)浏览:950 |
九宫重排 (C++代码)浏览:1292 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:688 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:543 |
兰顿蚂蚁 (C++代码)浏览:1046 |
打水问题 (C语言代码)浏览:978 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:890 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:563 |
淘淘的名单 (C语言代码)浏览:1045 |
本人酷爱递归实现很多问题,这里也是浏览:505 |