汽水瓶(链接)
这是一个简单的小学数学问题
可以使用模拟代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a=1,sum;
while(a!=0){
cin>>a;
sum=0;
if(a==0) return 0;
while(a>=3){
sum+=a/3;
a=a/3+(a%3);
}
if(a==2) cout<<sum+1<<endl;
else cout<<sum<<endl;
}
return 0;
}
这样解决
但是如果按顺序给出输入1-n,
就可以得到ans=输入的数/2;
于是,这样的代码也能通过;
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a=1;
while(1){
cin>>a;
if(a==0)break;
cout<<a/2<<endl;
}
return 0;
}
希望有谁能用数学方法给我解释为什么