编写一个程序,该程序确定玩家在篮球比赛中得分若干分数的所有不同方式 。三分球 分值3分(杜伊),投篮命中率2分,犯规 分别命中1分。请务必在最后打印总数为 的组合。篮球积分Java程序?
运行:
得分多少分? 8
2 3指针(多个),1场的目标(S),0罚球(S)
2 3指针(多个),0字段目标(S),2罚球(S)
1 3指针(多个),2场的目标(S),1个罚球(S)
1 3指针(多个),1场的目标(S),3罚球(S)
1个三分球,0个投篮命中,5个罚球(点球)
0 thre È指针(S),4场目标(一个或多个),0罚球(S)
0 3指针(S),3字段目标(S),2罚球(S)
0 3指针(S),2场的目标(S),4罚球(S)
0 3指针(多个),1场的目标(S),6罚球(S)
0 3指针(一个或多个),0个投篮,8个犯规
有10种不同的方式得分8分
我到目前为止有:
import java.util.Scanner;
public class MarchMadness
{
public static void main(String[] args)
{
Scanner kbReader = new Scanner(System.in);
System.out.println("How many points were scored?");
int points = kbReader.nextInt();
int ft = 1;
int fg = 2;
int tp = 3;
if (points % tp == 0)
{
System.out.println((points/tp) + " three pointers.");
}
}
}
我知道如何使适用于特定情况的程序,如8分,但我不知道如何使它接受的任何点量,并获得正确输出或打印出可能解决方案的数量。我该怎么办?
是这个家庭作业或类似的东西?如果是的话,请贴上标签。 – katzenhut
您可以使用动态编程来解决此问题。看看[这篇文章](http://www.capacode.com/dynamic-programming/money-change/),它解决了类似的问题。也许你会得到一些想法。或者,[这个SO问题](http://stackoverflow.com/q/8031816/1828486)也询问动态编程。 –
在我看来,不要直接从代码开始,你应该在笔和纸上解决问题。看看你是否可以弄清楚如何通过不同的组合来达到目标。如果你在此工作一段时间,你一定会看到一种模式。然后考虑如何提出一种算法,使其适用于所有可能的场景。然后才开始编写代码。 如果你直接潜入代码中,它只会让你更加困惑。上述方法将帮助您解决问题的能力。祝你好运! – akshayKhot