#include<iostream>
using namespace std;
int main(){
long long n,ans=0,fz=1,cnt=0,c;//定义一个足够大的变量,ans可以记录行数“做分母”,fz拿来当分子,cnt计数,c拿来当工具人。
cin>>n;
while(n>ans){ //当
//for(int i=0;i<=n;i++){
ans++;//记录行数。
n-=ans;//减去行数。
if(n==0&&ans%2==1){//如果正好够减,表示他是当前行的最后一个,不要忘记根据奇偶性来判断。
cout<<ans<<"/"<<"1";
return 0;//好习惯记心中( 不return就会继续执行程序)。
}
if(n==0&&ans%2==0){
cout<<"1"<<"/"<<ans;
return 0;
}
// }
}//这时的n,代表在ans-1行第n个。
ans++;//要加上一。
if(ans%2==0){
for(int j=1;j<n;j++){
fz++;//分子递增。
ans--;//分母递减。
cnt++;//计数器记录第几个数。
if(cnt==n){//当计数器与n重合。
break;//跳出。
}
}
}
if(ans%2==1){
for(int j=1;j<n;j++){
c=fz;//事先储存。
fz=ans;//分母分子交换。
ans=c;//分母分子交换。
fz--;//分子递减。
ans++;//分母递增。
cnt++;//计数器记录第几个数。
if(cnt==n){//当计数器与n重合。
break;//跳出。
}
}
}
cout<<fz<<"/"<<ans;
return 0;//好习惯记心中。
}
为甚摸不对,求大佬解释