Poj 1012 Joseph
2013-10-30 18:36
316 查看
import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main (String [] args) throws Exception { Scanner scan = new Scanner(System.in); int arr[] = new int[14]; for(int i=1;i<14;i++){ int sum = 2*i; int start = i+1; while(true){ if(judge(i,sum,start,0)){ arr[i] = start; break; }else{ start++; } } } while(true){ int k = scan.nextInt(); if(k==0) break; System.out.println(arr[k]); } } public static boolean judge(int k,int sum, int m, int now){ if(sum==k) return true; else{ now = (m+now-1)%sum+1; if(now<=k){ return false; }else{ return judge(k,sum-1,m,now-1); } } } }
下一个位置的公式要想一下。 next = (current+m-1)%sum+1
加一减一是为了去掉 4%4=0 这种情况
然后下次迭代的时候由于当前位置被删除了,位置退一个
judge(k,sum-1,m,now-1)
相关文章推荐
- POJ 1012 Joseph 推导,暴力,约瑟夫环,打表 难度:2
- [POJ][1012]Joseph
- poj 1012 Joseph
- poj 1012 Joseph解题报告
- poj1012 Joseph
- POJ 1012 Joseph 变形约瑟夫环
- poj 1012 Joseph
- poj 1012 & hdu 1443 Joseph(约瑟夫环变形)
- POJ 题目1012Joseph(数学,约瑟夫环)
- POJ 1012 Joseph
- Joseph - POJ 1012 打表
- POJ 1012:Joseph
- poj 1012 Joseph
- Poj1012_Joseph
- POJ 1012 Joseph
- poj 1012 -- Joseph (约瑟夫环)
- POJ 1012:Joseph
- poj1012-Joseph
- POJ1012 Joseph
- Poj1012_Joseph