按照题意把表写出来 就是下面的规律 1/1 1/2 2/1 3/1 2/2 1/3 1/4 2/3 3/2 4/1 可以发现就是每一行的行数,如果是奇数分子按行号递减,分母按行号递增。 如果是偶数,分子递增,分母递减 #include<bits/stdc++.h> using namespace std; int main(){ int N,ans=0,term=0,fenzi=0,flag=0; cin>>N; for(int i=1;;i++){ if(i%2==0){ for(int j=i,m=1;j>0&&m>0;j--,m++){ term=j; fenzi=m; ans++; if(ans==N){ flag=1; break; } } if(flag==1) break;} else{ for(int j=i,m=1;j>0&&m>0;j--,m++){ term=m; fenzi=j; ans++; if(ans==N){ flag=1; break; } } if(flag==1) break; } } printf("%d/%d",fenzi,term); return 0; }