poj1969---找规律

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

#include <stdio.h>

#include <stdlib.h>



int main()

{

    int n;

    while(scanf("%d",&n) != EOF)

    {

        int s=0,k=1;

        while(1)

        {

            s+=k;//统计个数,当前几斜线和大于了规定的序号,说明此时该数在第k根斜线

            if(s>=n)

            {//将分子和分母关系图分为两块,斜线分为两种,第奇数条

                if(k%2) printf("TERM %d IS %d/%d\n",n,s-n+1,k-s+n);//第奇数条

                else printf("TERM %d IS %d/%d\n",n,k-s+n,s-n+1);//第偶数条

                break;

            }

            k++;

        }

    }

    return 0;

}

/*对k-s+n和s-n+1理解:

对分子,奇数列是在递减,偶数列递增

对分母,奇数列在递增,偶数列在递减

图中逻辑关系是:奇数列分子递减,分母递增

偶数列,分子递增,分母递减

递减用s-n+1,递增用k-s+n

 

出一个序号,输出这个数

你可能感兴趣的:(poj)