九个数字

本文介绍了一个有趣的数学问题——如何使用1到9这九个数字进行排列组合,使得一个四位数乘以一个一位数的结果仍为四位数,并且所有数字都不重复出现。通过Java程序实现了这一逻辑,详细展示了判断条件及其实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/** * 九个数字: * 功能:实现填充。一个四位数乘以一个一位数,得到一个四位数。这九个数分别用1~9这九个数填充。 */ public class NineNumbers{ public static void main(String[] args){ int product = 0; for(int i = 1234; i <= 9876; i++){ if(!theThouthandNumberWithoutSameNumberAndZero(i)){ continue; } for(int j = 1; j <= 9; j++){ if(theThouthandNumberWithTheOne(i, j)){ continue; } product = i * j; if(!isThouthandNumber(product)){ continue; } if(!theThouthandNumberWithoutSameNumberAndZero(product)){ continue; } if(theThouthandNumberWithTheOne(product, j)){ continue; } if(theTwoThouthandNumberWithoutSameNumber(i, product)){ System.out.println("^_^ : I know " + i + " * " + j + " = " + product); } } } } /** * 判断一个数是不是一个四位数 */ public static boolean isThouthandNumber(int number){ int thouthand = number/1000; if(thouthand > 9 || thouthand < 1){ return false; } return true; } /** * 判断四位数里面有没有跟一个一位数相同的数字 */ public static boolean theThouthandNumberWithTheOne(int thoutandNumber, int one){ int number_thousand = thoutandNumber/1000; int number_hundred = thoutandNumber%1000/100; int number_ten = thoutandNumber%100/10; int number_one = thoutandNumber%10; if(one == number_thousand || one == number_hundred || one == number_ten || one == number_one){ return true; } return false; } /** * 判断两个四位数不含有相同的数字 */ public static boolean theTwoThouthandNumberWithoutSameNumber(int number1, int number2){ int number1_thousand = number1/1000; int number1_hundred = number1%1000/100; int number1_ten = number1%100/10; int number1_one = number1%10; int number2_thousand = number2/1000; int number2_hundred = number2%1000/100; int number2_ten = number2%100/10; int number2_one = number2%10; boolean[] signs = new boolean[10]; signs[number1_thousand] = true; signs[number1_hundred] = true; signs[number1_ten] = true; signs[number1_one] = true; if(signs[number2_thousand]){ return false; } if(signs[number2_hundred]){ return false; } if(signs[number2_ten]){ return false; } if(signs[number2_one]){ return false; } return true; } /** * 判断一个四位数没有相同数字且不含有零 */ public static boolean theThouthandNumberWithoutSameNumberAndZero(int number){ int number_thousand = number/1000; int number_hundred = number%1000/100; int number_ten = number%100/10; int number_one = number%10; boolean[] signs = new boolean[10]; signs[number_thousand] = true; if(!signs[number_hundred]){ signs[number_hundred] = true; } else { return false; } if(!signs[number_ten]){ signs[number_ten] = true; } else { return false; } if(!signs[number_one]){ signs[number_one] = true; } else { return false; } if(signs[0]){ return false; } return true; } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值