某大奖赛,每位选手需要回答10个问题(编号1~10),答对的当前分数翻倍;答错则扣掉与题号相同的分数(每位选手必须回答)
每位选手起步分10分,某选手最终得分刚好是100分,列出回答的情况,正确记1,错误记0,10个题目的情况仅用1和0来表示,例如0010110011就是可能的情况。
求所有可能的情况。
求速度解答啊,急!!
------解决方案--------------------
- Java code
public class Test { public static void main(String[] args){ int score=10; for(Integer i=0;i<1024;i++){ String b = i.toBinaryString(i); StringBuffer c =new StringBuffer(); for(int j=0;j<10-b.length();j++){ c.append('0'); } c.append(b); String d = c.toString(); char[] chars = d.toCharArray(); for(int k=0 ; k<10;k++){ if(chars[k]=='0'){ score -=k+1; } else{ score *=2; } } if(score==100){System.out.println(chars); } score = 10; } }}//分数嫁错了001011001101110100001011010000