#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)==1)
{
int k=1,s=0;
for(;;)
{
s+=k;
if(s>=n)//所求项是第k条对角线的倒数第s-n+1个元素
{
if (k % 2)//如果在第偶数斜线条
printf("%d/%d\n",s-n+1,k-s+n);
else
printf("%d/%d\n",k-s+n,s-n+1);
break;
}
k++;
}
}
return 0;
}
/*
#include<stdio.h>
#include<math.h>
int main()
{
int n;
while(scanf("%d",&n)==1)
{
int k=(int)floor((sqrt(8.0*n+1)-1)/2-1e-9)+1;
int s=k*(k+1)/2;
if (k % 2)//如果在第偶数斜线条
printf("%d/%d\n",s-n+1,k-s+n);
else
printf("%d/%d\n",k-s+n,s-n+1);
}
return 0;
} */
原文:http://blog.csdn.net/zzucsliang/article/details/23306357