`
jcs130
  • 浏览: 132692 次
  • 性别: Icon_minigender_1
  • 来自: Ottawa
社区版块
存档分类
最新评论

吸血鬼数字JAVA程序

 
阅读更多

看《Thinking in Java》,第四章最后面的那个练习题(练习10)吸血鬼数字:

  吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字:

  1260 = 21 * 60
  1827 = 21 * 87
  2187 = 27 * 81

自己写的代码,算法比较简单,但还是达到要求:

 

public class xxgNUM {
	/**
	 * 判断
	 * 
	 * @param num
	 * @return
	 */
	private boolean xxg(int num) {
		int a[] = new int[4];
		// 千位
		a[0] = (int) num / 1000;
		// 百位
		a[1] = (int) ((num - a[0] * 1000) / 100);
		// 十位
		a[2] = (int) ((num - a[0] * 1000 - a[1] * 100) / 10);
		// 个位
		a[3] = (int) (num - a[0] * 1000 - a[1] * 100 - a[2] * 10);
		// 如果后两位是0,直接返回
		if (a[2] == 0 && a[3] == 0) {
			return false;
		}
		// 脚标全排列
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				for (int k = 0; k < 4; k++) {
					for (int l = 0; l < 4; l++) {
						// 四个数不重复
						if (i != j && i != k && i != l && j != k && j != l
								&& j != l && k != l) {
							int n1 = a[i] * 10 + a[j];
							int n2 = a[k] * 10 + a[l];
							if (n1 * n2 == num) {
								System.out.println(num + "=" + n1 + "x" + n2);
								return true;
							}
						}
					}
				}
			}
		}
		return false;
	}

	// 程序入口
	public static void main(String[] args) {
		xxgNUM xxg = new xxgNUM();
		for (int num = 1000; num < 10000; num++) {
			xxg.xxg(num);
		}
	}
}

 

四位数一共有七组:

 

1260=21x60

1395=15x93

1435=41x35

1530=51x30

1827=87x21

2187=27x81

6880=86x80

分享到:
评论

相关推荐

    4位吸血鬼数字

    在Java中实现4位吸血鬼数字的程序,我们需要首先了解基本的数字处理和数组操作。以下是一些相关的知识点: 1. **数字表示与操作**:Java中的整数类型如int或long可以用来存储吸血鬼数字。我们通常使用int处理4位数...

    1-10000吸血鬼数字

    在给定的代码片段中,作者通过一个简单的Java程序实现了对1到10000之间所有可能的吸血鬼数字的查找。主要逻辑是使用两层嵌套循环,外层循环遍历从1到9999的所有数字,内层循环遍历当前外层循环变量到9999的所有数字...

    JAVA求吸血鬼数字

    吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以2个0结尾的数字是不...本程序就是如何找出4位数的所有的吸血鬼数字。

    1-10000中的吸血鬼数组合

    在给定的压缩包文件中,"复件 1-10000两数相乘的所有吸血鬼数字.txt"很可能是包含了1到10000所有吸血鬼数对的列表,这样的文件可以用于验证自己的程序结果或进行进一步的分析。而另外两个文件"复件 新建 文本文档6....

    xixuegui.zip_Java编程_Java_

    在这个程序中,`xixuegui.java`是实现吸血鬼数字功能的主要源代码文件。我们可以预期,这个程序会包含以下几个关键部分: 1. **输入与输出**:程序可能有一个主函数(`main`方法),用于接收用户输入的数字,然后...

    java初学者试题

    10. **吸血鬼数字识别**:编写代码识别特定位数的吸血鬼数字,涉及字符串操作、排序和乘法验证,挑战高级逻辑与算法设计能力。 以上知识点覆盖了Java编程的基础语法、面向对象编程、控制流程、数据类型操作及高级...

    就是NB网 BT小偷 v1.0

    6. **Leecher(吸血鬼)**:正在下载但尚未完成的用户。 BT小偷v1.0可能采用了独特的算法或优化措施,以提高下载速度或节省带宽,具体的功能和优势需要查看其源代码才能得知。对于开发者而言,研究这样的源码可以...

Global site tag (gtag.js) - Google Analytics