62,620
社区成员
发帖
与我相关
我的任务
分享class OutPut{
private int sum = 0;
public void SetSum() {
sum++;
}
public int OutSum() {
return sum;
}
}
// 设计计算方法
class Calculate extends OutPut{
public void ComPut(int score,int num) {
if (score < 0 || score > (num + 1) * 10)
return;
if (num == 0) {
SetSum();
return;
}
for (int i = 0;i <= 10;++i)
ComPut(score-i,num-1);
}
}
public class SheBar {
public static void main(String[] args) {
Calculate a = new Calculate();
a.ComPut(45, 5);
System.out.println(a.OutSum());
}
}
class Test {
private int mGoalScores = 45; // 目标值
private int mRoundNum = 6; // 轮数
private int mMinScore = 0; // 最低得分
private int mMaxScore = 10; // 最高得分
private int[] mScoresArr; // 得分记录
private int mMethodNum = 0; // 可能得到目标值的情况数
private int mSum = 0; // 某一轮的分数总和
public Test(){
mScoresArr = new int[mRoundNum];
}
private boolean continueNextRound(int round) {
if (mRoundNum == round) {
if (mGoalScores == mSum) {
for (int ii=0; ii<mRoundNum; ii++) {
System.out.print(mScoresArr[ii] + " ");
}
System.out.println("");
mMethodNum++;
}
return false;
}
return true;
}
private void getRoundScore(int round) {
if (false == continueNextRound(round)) {
return;
}
for (int ii=mMinScore; ii<=mMaxScore; ii++) {
mScoresArr[round] = ii;
mSum += mScoresArr[round];
getRoundScore(round+1);
mSum -= mScoresArr[round];
}
}
public void startCal() {
getRoundScore(0);
System.out.println("Possible cases: " + mMethodNum);
}
}
import java.util.Arrays;
public class Test56 {
static int nn = 0;
public static void main(String[] args) {
aa(0, 0, new int[6]);
System.out.println(nn);
}
public static void aa(int total, int num, int[] arr){
if(num <= 6 && total == 45){
nn++;
System.out.println(Arrays.toString(arr));
return;
}
if(num >= 6 || total > 45)
return;
int i = 11;
while(i-- > 0){
int[] temp = new int[6];
System.arraycopy(arr, 0, temp, 0, 6);
temp[num] = i;
aa(total + i, num + 1, temp);
}
}
}