读书人

算法解答解决办法

发布时间: 2012-04-16 16:20:04 作者: rapoo

算法解答
某大奖赛,每位选手需要回答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 

读书人网 >J2SE开发

热点推荐