每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数
2013-03-26 16:45
246 查看
package Java2012大赛; /* * /* * 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: * 每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理 * 每位选手都有一个起步的分数为10分。 * 某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗? * 如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。 * 你的任务是算出所有可能情况。每个答案占一行。 * 答案写在“解答.txt”中,不要写在这里! */ public class Socre10YunSuan100 { static String[] strArray = new String[] { "", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000", "000000000" }; public static void main(String[] args) { long start = System.currentTimeMillis(); int score = 10; // char[][] array = new char[1024][10];//共有1024中情况 char[] arr = new char[10]; for (int i = 0; i < 1024; i++) {// StringBuffer bf = new StringBuffer(); String a = Integer.toBinaryString(i); int length = a.length(); // int unlength = 10 - length; bf.append(strArray[10 - length]); bf.append(a); // array[i] = bf.toString().toCharArray(); arr = bf.toString().toCharArray(); for (int k = 0; k < 10; k++) { if (score > 0) { if (arr[k] == '0') score = score - k - 1; else score = score * 2; } else break; } if (score == 100) for (int j = 0; j <= 9; j++) { System.out.print(arr[j]); if (j == 9) System.out.println(); } score = 10; } long end = System.currentTimeMillis(); //System.out.println(end - start); } }
相关文章推荐
- 奇怪的比赛 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
- 问题六十八: 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。 选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
- 产品要不要做先回答的10个问题
- Mac开发环境下安装Myeclipse 10 所需要主要的一些问题
- MVVM Light需要注意的10个问题
- 想升级iOS 10 Beta版本?这7个问题需要考虑
- 10个 DIV+CSS 需要注意的问题
- 想高质量交付,需要先回答这三个问题
- 10个DIV+CSS需要注意的问题
- SDE 10 for DB2打sp1补丁需要注意的问题
- CSS基础:DIVcss初学者需要引起重视的10个问题与技巧
- 我眼中“项目经理”需要回答的开放性问题
- 2015年工作中遇到的10个问题:1-10
- 财务部门:你需要多长时间才能够回答老板的这些问题?
- 产品要不要做,先回答10个问题
- C++实验——参赛歌手计算平均分问题:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后成绩。这里假设共有10位评委,都是按照百分制打分。
- 回答--你有什么问题需要问我呢
- [转]编写ActionScript3.0中需要注意的10个问题
- IT工程师需要注意的10个问题哈~~
- 字典序问题。在数据加密和数据压缩中常需要对特殊的字符串进行编码。给定的字母表A由26个小写字母组成。该字母表产生的升序字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1