POJ 1969 Count on Canton(数学题,找规律)
来源:互联网 发布:mac视频播放器 mpv 编辑:程序博客网 时间:2024/06/11 23:41
题意:按照题目要求,输出第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;
using namespace std;
int main()
{