某大奖赛,每位选手需要回答10个问题(编号1~10),答对的当前分数翻倍;答错则扣掉与题号相同的分数(每位选手必须回答)
每位选手起步分10分,某选手最终得分刚好是100分,列出回答的情况,正确记1,错误记0,10个题目的情况仅用1和0来表示,例如0010110011就是可能的情况。
求所有可能的情况。
求速度解答啊,急!!
每位选手起步分10分,某选手最终得分刚好是100分,列出回答的情况,正确记1,错误记0,10个题目的情况仅用1和0来表示,例如0010110011就是可能的情况。
求所有可能的情况。
求速度解答啊,急!!
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;
}
else{
score *=2;
}
}
if(score==100){
System.out.println(chars);
}
score = 10;
}
}
}
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;
}
}
}
//分数嫁错了
0010110011
0111010000
1011010000