思路一:
总体思路:
(一).
定义相关变量:
int money = 0; -- 一元一瓶,所以也等于空瓶数
int total = 0; -- 喝的总瓶数
int empty = 0; -- 空瓶数
输入 money -- scanf()函数
一开始,有多少钱就有多少瓶:
total += money;
钱换了多少瓶就有多少空瓶:
empty += money;
(二).
进行空瓶兑换:
使用 while循环 ,当 空瓶 大于等于2 就进行兑换
把兑换后的瓶数加到总瓶数中:
total += empty / 2;
计算换后喝完的总空瓶数:
empty = empty / 2 + empty % 2;
empty / 2 -- 换了多少瓶又有多少个空瓶
empty % 2 -- 再加上可能没到2瓶不够换的1瓶
这两部分加起来才是总空瓶数
退出循环后进行打印 -- printf()函数
第一步:
(1).
定义相关变量:
int money = 0; -- 一元一瓶,所以也等于空瓶数
int total = 0; -- 喝的总瓶数
int empty = 0; -- 空瓶数
(2).
输入 money -- scanf()函数
(3).
一开始,有多少钱就有多少瓶:
total += money;
(4).
钱换了多少瓶就有多少空瓶:
empty += money;
实现代码:
#include <stdio.h> int main() { //定义相关变量: int money = 0; //一元一瓶,所以也等于空瓶数 int total = 0; //喝的总瓶数 int empty = 0; //空瓶数 //输入money scanf("%d", &money); //一开始,有多少钱就有多少瓶: total += money; //钱换了多少瓶就有多少空瓶: empty += money; return 0; }
实现图片:
第二步:
进行空瓶兑换:
(1).
使用 while循环 ,当 空瓶 大于等于2 就进行兑换
(2).
把兑换后的瓶数加到总瓶数中:
total += empty / 2;
(3).
计算换后喝完的总空瓶数:
empty = empty / 2 + empty % 2;
empty / 2 -- 换了多少瓶又有多少个空瓶
empty % 2 -- 再加上可能没到2瓶不够换的1瓶
这两部分加起来才是总空瓶数
(4).
退出循环后进行打印 -- printf()函数
实现代码:
#include <stdio.h> int main() { //定义相关变量: int money = 0; //一元一瓶,所以也等于空瓶数 int total = 0; //喝的总瓶数 int empty = 0; //空瓶数 //输入money scanf("%d", &money); //一开始,有多少钱就有多少瓶: total += money; //钱换了多少瓶就有多少空瓶: empty += money; //进行空瓶兑换: //使用while循环,当空瓶大于等于2就进行兑换 while (empty >= 2) { //把兑换后的瓶数加到总瓶数中: total += empty / 2; //计算换后喝完的总空瓶数: empty = empty / 2 + empty % 2; //empty / 2:换了多少瓶就又有多少个空瓶, //empty % 2:再加上可能没到2瓶不够换的1瓶 //这两部分加起来才是总空瓶数 //之后再判断需不需要再循环 } //退出循环后进行打印: printf("%d", total); return 0; }
实现图片:
思路一:最终代码和实现效果
最终代码:
#include <stdio.h> int main() { //定义相关变量: int money = 0; //一元一瓶,所以也等于空瓶数 int total = 0; //喝的总瓶数 int empty = 0; //空瓶数 //输入money scanf("%d", &money); //一开始,有多少钱就有多少瓶: total += money; //钱换了多少瓶就有多少空瓶: empty += money; //进行空瓶兑换: //使用while循环,当空瓶大于等于2就进行兑换 while (empty >= 2) { //把兑换后的瓶数加到总瓶数中: total += empty / 2; //计算换后喝完的总空瓶数: empty = empty / 2 + empty % 2; //empty / 2:换了多少瓶就又有多少个空瓶, //empty % 2:再加上可能没到2瓶不够换的1瓶 //这两部分加起来才是总空瓶数 //之后再判断需不需要再循环 } //退出循环后进行打印: printf("%d", total); return 0; }
实现效果:
思路二:使用思路一中发现的规律
总体思路:
改变思路一中的第二步:
使用 if条件判断语句,如果 money > 0 就使用规律计算,
直接用规律计算换后喝完的总空瓶数:
total = money * 2 - 1;
第一步:
使用 if条件判断语句,如果 money > 0 就使用规律计算,
直接用规律计算换后喝完的总空瓶数:
total = money * 2 - 1;
实现代码:
#include <stdio.h> int main() { //定义相关变量: int money = 0; //一元一瓶,所以也等于空瓶数 int total = 0; //喝的总瓶数 int empty = 0; //空瓶数 //输入money scanf("%d", &money); //一开始,有多少钱就有多少瓶: total += money; //钱换了多少瓶就有多少空瓶: empty += money; //利用方法一中发现的规律: if (money > 0) //防止0元计算出 负一瓶 的情况 { //使用规律进行计算: total = money * 2 - 1; } //退出循环后进行打印: printf("%d", total); return 0; }
实现图片:
思路二:最终代码和实现效果
最终代码:
#include <stdio.h> int main() { //定义相关变量: int money = 0; //一元一瓶,所以也等于空瓶数 int total = 0; //喝的总瓶数 int empty = 0; //空瓶数 //输入money scanf("%d", &money); //一开始,有多少钱就有多少瓶: total += money; //钱换了多少瓶就有多少空瓶: empty += money; //利用方法一中发现的规律: if (money > 0) //防止0元计算出 负一瓶 的情况 { //使用规律进行计算: total = money * 2 - 1; } //退出循环后进行打印: printf("%d", total); return 0; }
实现效果: