用1、2、2、3、4、5这六个数字 , 用java写一个main函数,打印出所有不同的排列...

package ArithmeticTest;

import java.util.HashSet;
import java.util.Set;

/**
* 题目:用1、2、2、3、4、5这六个数字,
* 用java写一个main函数,打印出所有不同的排列,
* 如:512234、412345等,要求:”4″不能在第三位,”3″与”5″不能相连.
* @author hbj
*
*/
public class Arithmetic2 {
static Set<String> intSet = new HashSet<String>();
public static void doSomething(Integer[] array,int count,String result){
if(count==6){
if(result.indexOf('4')!=2&&!result.contains("35")&&!result.contains("53")){
intSet.add(result);
}
}else{
for(int i=0;i<array.length;i++){
if(array[i]!=0){
int temCount = count;
String _tem = result;
_tem += array[i]+"";
Integer[] _array = array.clone();
_array[i]=0;
doSomething(_array,++temCount,_tem);
}
}
}
}



public static void main(String[] args){
Integer[] array = new Integer[]{1,2,2,3,4,5};
Arithmetic2.doSomething(array, 0, "");
Integer c=1;
for(String s :intSet){
System.out.println((c++)+": "+s);
}
}

}


结果是 198个,不知道对了没有
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用Java的满足Luhn校验规则的卡号生成函数示例: ```java public class LuhnCardNumberGenerator { public static String generateCardNumber(int length) { StringBuilder cardNumber = new StringBuilder(); // 生成随机的前 n-1 位数字 for (int i = 0; i < length - 1; i++) { int digit = (int) (Math.random() * 10); cardNumber.append(digit); } // 计算校验位 int checksum = calculateChecksum(cardNumber.toString()); // 添加校验位到卡号末尾 cardNumber.append(checksum); return cardNumber.toString(); } private static int calculateChecksum(String cardNumber) { int sum = 0; boolean doubleDigit = false; // 从右往左遍历卡号 for (int i = cardNumber.length() - 1; i >= 0; i--) { int digit = Character.getNumericValue(cardNumber.charAt(i)); if (doubleDigit) { digit *= 2; if (digit > 9) { digit = digit % 10 + 1; } } sum += digit; doubleDigit = !doubleDigit; } return (sum * 9) % 10; } public static void main(String[] args) { int cardLength = 16; // 卡号长度(不包括校验位) String cardNumber = generateCardNumber(cardLength); System.out.println("生成的卡号:" + cardNumber); } } ``` 这个示例中,`generateCardNumber` 函数用于生成满足Luhn校验规则的卡号。它首先通过随机生成的数字生成卡号的前n-1位,然后使用 `calculateChecksum` 函数计算校验位,并将其添加到卡号末尾。`calculateChecksum` 函数从卡号的最右边开始,按照Luhn算法的规则计算校验位。 在 `main` 函数中,我们可以指定卡号的长度,并打印生成的卡号。 请注意,这只是一个简单的示例,用于演示如何生成满足Luhn校验规则的卡号。在实际应用中,可能需要考虑更复杂的逻辑,例如不同类型的卡号规则、校验位的位置等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值