POJ 1969 Count on Canton(数学题,找规律)

来源:互联网 发布:mac视频播放器 mpv 编辑:程序博客网 时间:2024/06/11 23:41

题意:按照题目要求,输出第N个数对应的数据
分析:将/左边的数据和右边的数据分开处理,如下图所示
   
POJ <wbr>1969 <wbr>Count <wbr>on <wbr>Canton(数学题,找规律)POJ <wbr>1969 <wbr>Count <wbr>on <wbr>Canton(数学题,找规律)


每走一次斜线,就算是一次循环,然后每个循环都很有规律。当循环的圈数为偶数和为奇数时分别处理就好。

贴一下代码:(232k,0ms)

C++语言:
#include<iostream>
using namespace std;
int main()
{
   int a,b;
   int temp_a,temp_b;
   int i,n;
   int num;
   while(cin>>num)
   {
      temp_a=0  //用来控制循环结束
      temp_b=0;
      for(n=1 ;temp_a!= num; n ++)           //n控制是第几次循环,同时也是这次循环的数的个数
      {
         if(n%2==0)
             for(i=1 ; i <= n &&temp_a!= num; i ++)
             {
                a=i;
                temp_a++;
             }
         else
             for(i= n ;i > 0 &&temp_a!=num;i --)
             {
                a=i;
                temp_a++;
             }
      }
      for(n= 1;temp_b!= num; n ++)
      {
         if(n%2==0)
             for(i= n;i > 0&&temp_b!=num;i-- )
             {
                b =i;
                temp_b++;
             }
         else
         for(i=1;i<=n&&temp_b!=num;i++)
         {
             b = i;
             temp_b++;
         }
      }
      cout<<"TERM"<<num<<"IS "<<a<<"/"<<b<<endl;
   }
}
原创粉丝点击