0
已解决
康曦
中级光能
中级光能
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<string>
#include<cstdlib>
#include<list>
using namespace std;
int kx(int m){
if(m==1) return 1;
return m+kx(m-1)/2;
}
int main(){
int n;
cin>>n;
cout<<kx(n)+1;
return 0;
}
//这个代码为什么能AC
正确的题解
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<string>
#include<cstdlib>
#include<list>
using namespace std;
int kx(int m){//当前有n个空瓶,可以兑换多少瓶
if(m==1||m==0){//边界
return 0;
}
return m/2+kx(m/2+m%2);//此时兑换了n/2瓶 剩下(n/2个空瓶+没有兑换的n%2个空瓶)继续兑换
}
int main(){
int n;
cin>>n;
cout<<kx(n)+n;
return 0;
}
0
已采纳
张易晨
新手光能
新手光能
所以你到底想说什么
张易晨在2020-09-15 21:20:59追加了内容
你是想问那个代码为什么可以AC?
张易晨在2020-09-15 21:22:23追加了内容
我的代码思路和上面两个都不一样。。。。。。
我去
0
0