天梯 1083 Cantor表
解题报告:发现规律就可以了,斜着看,第一条线上有1个,第二条线上有2个,....然后求出等差数列前n项和,求出N在第几条线上,然后就看N是在这条线上的第几个就可以了。

1 #include<cstdio> 2 const int MAX = 10000000+5; 3 int main() { 4 int i,N,sum,d; 5 scanf("%d",&N); 6 for(i = 1;i<MAX;++i) 7 if(N <= (1+i)*i/2) { 8 sum = (1+(i-1))*(i-1)/2; 9 break; 10 } 11 d = N - sum; 12 if(i & 1) 13 printf("%d/%d\n",i+1-d,d); 14 else printf("%d/%d\n",d,i+1-d); 15 return 0; 16 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步