博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2265 Bee Maja (找规律)
阅读量:4317 次
发布时间:2019-06-06

本文共 1500 字,大约阅读时间需要 5 分钟。

题意 : 给你两个蜂巢的编号,给你一个的编号让你输出在另外一个蜂巢中对应的编号。

思路 : 先将蜂巢分层,第一层一个数,第二层6个数,第三层12个数…………然后用公式表示出第n层的最后一个数是多少,下图中竖着的是x坐标,斜着的是y坐标,往左横坐标+1,往右横坐标-1,以斜线为准往上纵坐标-1,往下纵坐标+1,(1,1)也就是18是第三圈的第一个数,(2,1)也就是20是第四圈的第一个数。

 

1 #include 
2 #include
3 #include
4 #include
5 6 using namespace std ; 7 8 int main() 9 {10 int a ;11 while(scanf("%d",&a) !=EOF)12 {13 if(a == 1)14 {15 printf("0 0\n") ;16 continue ;17 }18 int n = 0;19 while(3 * (n-1) * n + 1 < a)//3 * (n-1) * n + 1表示第n圈的最后一个数是多少20 n++;//找到该数属于第几圈21 n--;22 a -= 3*(n-1)*n+1;23 int x , y;24 //分为6个边,每个边上n个数,可以根据题目里的两个图找找规律,看看每条边上的xy的规律是多少25 if(a<=n)26 {27 x = n-a;28 y = a;29 }30 else if(a>n&&a<=2*n)31 {32 x = n-a;33 y = n;34 }35 else if(a>2*n&&a<=3*n)36 {37 x = -n;38 y = 3*n-a;39 }40 else if(a>3*n&&a<=4*n)41 {42 x = a-4*n;43 y = 3*n-a;44 }45 else if(a>4*n&&a<=5*n)46 {47 x = a-4*n;48 y = -n;49 }50 else51 {52 x = n;53 y = a-6*n;54 }55 printf("%d %d\n",x,y) ;56 }57 return 0 ;58 }
View Code

 

转载于:https://www.cnblogs.com/luyingfeng/p/3919974.html

你可能感兴趣的文章
[家里蹲大学数学杂志]第394期分组求积分因子法
查看>>
[唐诗]送杜少府之任蜀州-王勃
查看>>
华中科技大学数学专业考研试题参考解答
查看>>
Objective-C数组初识
查看>>
appium(10)-iOS predictate
查看>>
程序的优化(PHP)
查看>>
Function.prototype.toString 的使用技巧
查看>>
Zookeeper+websocket实现对分布式服务器的实时监控(附源码下载)
查看>>
Asp.net MVC中的ViewData与ViewBag(转)
查看>>
Nunit -断言使用()
查看>>
guava入门
查看>>
Oracle to_char 转换数值
查看>>
selinux-网络服务安全
查看>>
10个维修中最常见的蓝屏代码,值得收藏!
查看>>
indexOf、instanceOf、typeOf、valueOf详解
查看>>
好程序员web前端教程:对象
查看>>
十道海量数据处理面试题与十个方法大总结
查看>>
sql表操作的基础语法
查看>>
【hdoj_1049】Climbing Worm
查看>>
android 开发之 - 百度地图 key 的申请
查看>>