- /**
- * 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:
- * 每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
- * 答对的,当前分数翻倍;答错了则扣掉与题号相同的分数
- * (选手必须回答问题,不回答按错误处理)。 每位选手都有一个
- * 起步的分数为10分。 某获胜选手最终得分刚好是100分,如果不让
- * 你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答
- * 错了吗? 如果把答对的记为1,答错的记为0,则10个题目的回答情
- * 况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。
- * 你的任务是算出所有可能情况。每个答案占一行
- * @author Felicitia
- *
- */
- public class Score {
- public static void main(String argv[])
- {
- int maxDeep = 10;
- int[] array = new int[maxDeep];
- for(int i=0; i<2; i++)
- {
- array[0] = i;
- search(maxDeep, 1, array);
- }
- }
- private static void search(int maxDeep, int deep, int[] array)
- {
- if(maxDeep == deep)
- {
- int score = 10;
- for(int i=0; i< maxDeep; i++)
- {
- if(array[i]==1)
- {
- score *= 2;
- }
- else
- {
- score -= (i+1);
- }
- }
- if(score == 100)
- {
- for(int i=0; i<maxDeep; i++)
- System.out.print(array[i]);
- System.out.println();
- }
- }
- else
- {
- for(int i=0; i<2; i++)
- {
- array[deep] = i;
- search(maxDeep, deep+1, array);
- }
- }
- }
- }
暴力搜索
最新推荐文章于 2024-07-28 20:55:57 发布