全部评论 1

  • 为什么可以这样做?

    2025-07-16 来自 江苏

    0
    • #include<iostream>
      using namespace std;
      int main(){
      int n,all=0,last=0; 三个变量分别为初始瓶子数量(有几个满的瓶子),累计喝了几瓶,目前手上的空瓶数量
      cin>>n; 输入初始瓶子数量
      all+=n; 累计喝了n瓶
      while(n+last>=3){ 当手上的空瓶以及满的瓶子数量大于3 时(可以兑换时)
      all+=n/3; 累计数量加上得到的新瓶子数量等于现在喝了几瓶
      last+=n%3+n/3; 兑换时多余的部分加上兑换了几个瓶子(现持有瓶子数)
      n=last; 将n赋值为现有瓶子数
      last=0; 空瓶数归零
      进入下一次循环
      }
      cout<<all; 输出总共喝了几瓶
      return 0;
      }

      2025-07-16 来自 美国

      1
    • 大概就是把兑换的累加然后重复操作

      2025-07-16 来自 浙江

      1
    • Thanks

      2025-07-16 来自 江苏

      0
首页