poj1969---找规律

时间:2023-03-08 21:38:46

题意:按照s型分别给数编号,给

#include <stdio.h>
#include <stdlib.h> int main()
{
int n;
while(scanf("%d",&n) != EOF)
{
int s=,k=;
while()
{
s+=k;//统计个数,当前几斜线和大于了规定的序号,说明此时该数在第k根斜线
if(s>=n)
{//将分子和分母关系图分为两块,斜线分为两种,第奇数条
if(k%) printf("TERM %d IS %d/%d\n",n,s-n+,k-s+n);//第奇数条
else printf("TERM %d IS %d/%d\n",n,k-s+n,s-n+);//第偶数条
break;
}
k++;
}
}
return ;
}
/*对k-s+n和s-n+1理解:
对分子,奇数列是在递减,偶数列递增
对分母,奇数列在递增,偶数列在递减
图中逻辑关系是:奇数列分子递减,分母递增
偶数列,分子递增,分母递减
递减用s-n+1,递增用k-s+n

出一个序号,输出这个数