原题目
题目分析
规律:每一个副对角线元素个数成等差数列 , 由等差数列求和公式 , 可知当前是第几条副对角线,并且当前最大分母数字为其最大个数 , 同时当对角线条数为奇数时遍历从左下到右上 , 偶数时从右上到左下,其次分母分子遍历方式正好相反
完整代码
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))//第n项
{
int sum=0,i;
for(i=1;i<=30000;i++)
{
sum=sum+i;
if(sum>=n)//直到满足遍历的个数大于n停止 , 记录对角线条数i
break;
}
sum=sum-n;//判断n是当前对角线的第几项
if(i%2==0)//为偶数,右上至左下
printf("%d/%d\n",i-sum,sum+1);
else
printf("%d/%d\n",sum+1,i-sum);
}
return 0;
}