廖悦扬 • 4个月前
#include <bits/stdc++.h>
#define IOS cin.tie(0);cout.tie(0);ios::sync_with_stdio(false)
#define int long long
using namespace std;
int n, i=2;
int x, y, t=0; // x分子, y分母
int dx[] = {0, 1, 1, -1};
int dy[] = {1, -1, 0, 1};;
int main() {
IOS
cin >> n;
x = 1;
y = 1;
while (i<=n) {
if ((t&1)) {
while (x+dx[t] >= 1 && y+dy[t] >= 1 && i <= n) { // 单数则一直移动,直到边界
x -= dx[t];
y -= dy[t];
i++;
}
} else { // 偶数则只移一步
x += dx[t];
y += dy[t];
i++;
}
t++;
t %= 4;
}
cout << x << "/" << y << '\n';
return 0;
}
为防止抄题解,代码有坑
评论: