题目要求
选手初始分数为10,在10个问题中,答对的话,分数翻倍;答错的话,扣掉与题号相同的分数(不回答按错误处理)。最后得分为100时,算出所有答题的情况,答对记作1,答错记作0.
2.2解决方法
逐步递归,将每次答错和答对的情形通过程序表示出来,存在数组中,如果最后得分等于100,输出该数组.
2.3程序
2.3.1程序
package CaseOne;
public class Two {
public static int[] arr = new int[10];
public static void main(String[] args) {
method(1, 10);
}
public static void method(int n, int sum) {
//当进行10次后,判断是否符合总分为100
if (n > 10) {
if (sum == 100) {
for (int i = 0; i <= 9; i++) {
System.out.print(arr[i]);
}
System.out.println();
}
return;
}
//进行输赢的判断,记作0或1
for (int i = 0; i < 2; i++) {
if (i == 0) {
arr[n-1] = i;
method(n+1, sum-n);
} else {
arr[n-1] = i;
method(n+1, sum+sum);
}
}
}
}