POJ 1012

ExpandedBlockStart.gif code
 1  #include  < iostream >
 2  #include  < vector >
 3  using   namespace  std;
 4 
 5  bool  test( int  k , int  m)
 6  {
 7       int  i, j = 0 ;
 8       int  n  =   2   *  k;
 9       for (i = 0 ; i < k; i ++ )
10      {
11           // f(i+1) = (f(i) + m-1) % (n-i)
12          j = (j + m - 1 %  (n - i);
13 
14           if (j  <  k)
15          {
16               return   false ;
17          }
18      }
19 
20       return   true ;
21  }
22 
23  int  main()
24  {
25       int  k;
26       int  i;
27       int  x[ 13 ];
28       for (k = 1 ; k < 14 ; k ++ )
29      {
30          i  =  k + 1 ;
31           while ( true )
32          {
33               if (test(k, i))
34              {
35                  x[k - 1 =  i;
36                   break ;
37              }
38 
39               if (test(k, i + 1 ))
40              {
41                  x[k - 1 =  i + 1 ;
42                   break ;
43              }
44 
45              i  +=  (k + 1 );
46          }
47      }
48 
49       while (cin  >>  k, k)
50      {
51          cout  <<  x[k - 1 <<  endl;
52      }
53  }

 

转载于:https://www.cnblogs.com/zhtf2014/archive/2010/08/16/1801006.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值