{
for(int j=1j<=50j++)
{
for(int k=1k<=20k++)
{
if(i*1+j*5+k*2==100)
System.out.println("1元钞票可以换为"+i+ "枚1分硬币和"+j+"枚2分硬币和"+k+ "枚5分硬币\n")
}
}
}
只有一堆硬币 而且甲先手的话 直接让甲一次过把硬币取完就能保证胜利了。
public class Main {public static void main(String[] args) {
int m = 12
boolean isJia = true
while (true) {
m = m - m
if (m <= 0) {
break
} else {
isJia = false
}
}
System.out.println((isJia ? "甲" : "乙") + "取得了最后一个硬币.他胜利了.")
}
}
import java.util.ArrayList/*
* 一元钱硬币有多少种表达方式
* 可供选择:1分,2分,5分,1角,2角,5角,1元
* 如:
* 1元=1元
* 1元=5角+5角
* ....
*/
public class Test {
private static int count
public static void main(String args[]){
int max = 100//一元
int[] cents = {100,50,20,10,5,2,1}//币值
String[] money = {"1元","5角","2角","1角","5分","2分","1分"}
ArrayList collect = new ArrayList()
collectMoney(cents, money,0, max, 0, collect)
System.out.println("总共有"+count+"种搭配方法!")
}
public static void collectMoney(int[] cents,String[] money,int beginIndex,int max,int result,ArrayList collect){
if(result>=max){
if(result==max){
count++
System.out.print("1元=")
for(int i=0i<collect.size()i++){
System.out.print(money[(Integer) collect.get(i)])
if(i<collect.size()-1){
System.out.print("+")
}
}
System.out.println()
}
return
}
for(int i=beginIndexi<cents.lengthi++){
int cent = cents[i]
collect.add(i)
collectMoney(cents, money,i, max, result+cent, collect)
collect.remove(Integer.valueOf(i))
}
}
}