当前位置: 代码迷 >> J2SE >> 算法解答解决办法
  详细解决方案

算法解答解决办法

热度:76   发布时间:2016-04-24 01:26:13.0
算法解答
某大奖赛,每位选手需要回答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
  相关解决方案