趣味程序题

昨天偶尔看到一个题目,有8个盘子排成一排,有3个苹果,要将这三个苹果放入盘子中,问有多少中排法,左边连续排三个和右边连续排三个为不同的排法,用程序实现。


程序如下:

public class Handle {

private static int flag = 0;

public static void main(String[] args){
new Handle().addXYZ(1, 2, 3, 8);
System.out.println(flag);
}

/**
* 将第三个数从一加到N
* @param x
* @param y
* @param z
* @param n
*/
private void addZ(int x,int y,int z,int n){
for(;z<=n;z++){
System.out.println(x+" "+y+" "+z);
flag++;
}
}

/**
* 将第二个数加一,一直加到N-1。第三个数为第二个数加1,加到N
* @param x
* @param y
* @param z
* @param n
*/
private void addXY(int x,int y,int z,int n){
for(;y<=n-1;y++){
addZ(x,y,y+1,n);
}
}

/**
* 将第三个数加一,一直加到N-2,第二个数为第一个数加一,一直加到N-1,第三个数为第二个数加一,一直加到N
* @param x
* @param y
* @param z
* @param n
*/
private void addXYZ(int x,int y,int z,int n){
for(;x<=n-2;x++){
addXY(x,x+1,x+2,n);
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值