求助数学问题
  • 板块学术版
  • 楼主DMZC
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/12/20 17:25
  • 上次更新2023/11/5 05:52:25
查看原帖
求助数学问题
417952
DMZC楼主2020/12/20 17:25

汽水瓶(链接)

这是一个简单的小学数学问题

可以使用模拟代码

#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;
}

希望有谁能用数学方法给我解释为什么

2020/12/20 17:25
加载中...