不要让昨天 占据你的今天 夏午晴天

夏午晴天

踩格子

我们现在纸上画一个方框,平均分成n份,编号为1~n,然后呢,我们从1号开始移动k个数字,如果遇上边界就改变方向,就是下面的样子,比如8个格子,移动两个数字

 

1->3->5->7->7->5->3->1->3....如果这样一直跳,就会出现死循环,不能把每一个格子都踩中,那么我们需要最小的k是多少时才能满足每一个格子都踩中呢?

“那不是等于1么”学长脱口而出~
这样就没法玩了,难怪都这么久都没有女朋友,当然k不能等于1!

 

 

输入

输入n表示划分n个格子

2<=n<=105

 

输出

输出最小的k满足每一个格子都踩中
k不等于1

 

样例输入

8

样例输出

3

提示

 


提示
1->4->7->6->3->2->5->8 全部踩中

HDU 1222
http://www.acmerblog.com/hdu-1222-Wolf-and-Rabbit-1585.html

 http://acm.hdu.edu.cn/showproblem.php?pid=1222

 1 #include <stdio.h>
 2 #include <iostream>   // C++头文件,C++完全兼容C
 3 #include <algorithm>  // C++头文件,C++完全兼容C
 4 #define fre  freopen("out.txt","w",stdout)   //以文件代替控制台输入,比赛时很常用,能缩短输入测试样例的时间
 5 using namespace std;  // C++头文件,C++完全兼容C
 6 
 7 int ans,n,k;
 8 
 9 int main()
10 {
11     while(cin>>n)
12     {
13         for(int i=2; i<=2*n; i++)
14         {
15             if(__gcd(2*n-2,i)==1)
16             {
17                 cout<<i<<endl;
18                 break;
19             }
20         }
21     }
22 
23     return 0;
24 }

 


posted on 2017-03-07 16:06  夏晴天  阅读(233)  评论(0编辑  收藏  举报

导航

Live2D