0
已解决
周琪岳
资深光能
资深光能
https://ke.codingtang.com/#/problem/problemSub?id=1726
这是我的代码,请问哪里错了?
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <algorithm>
#include <fstream>
using namespace std;
int x, y, ans;
int main() {
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);
cin >> x >> y;
int k = 1;
bool b = true, s = false;
while (true) {
if (b) {
int cnt_1 = 0;
for (int i = x; i <= x+k; i++) {
ans++;
cnt_1++;
if (i == y) {
cout << ans;
return 0;
}
}
k = k* 2;
b = false;
s = true;
ans += cnt_1;
}
if (s) {
int cnt_2 = 0;
for (int i = x; i>=x-k;i--) {
ans++;
cnt_2++;
if (i == y) {
cout << ans;
return 0;
}
}
k = k * 2;
b = true;
s = false;
ans += cnt_2;
}
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
1
已采纳
张天璨
新手天翼
新手天翼
我也不知道,
但我可以把我的代码发一下:
int x=0,y=0,a,b,ans=0;
cin>>a>>b;
while(1)
{
if(x!=0)
{
x*=2;
x=-x;
}
else
{
x=1;
}
if(b>=a&&b<=a+x||b>=a+x&&b<=a)//如果达到了
{
ans+=abs(b-a);
break;
}
else
{
ans+=abs(x)*2;
}
}
cout<<ans;
return 0;
望采纳。
0
0
0
0