您的位置:首页 > 其它

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

2013-06-13 15:39 411 查看


题意:按照题目要求,输出第N个数对应的数据
分析:将/左边的数据和右边的数据分开处理,如下图所示


   







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

贴一下代码:(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;

   }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: