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
出一个序号,输出这个数