
正文
吸血鬼数字java代码 java吸血鬼游戏
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java中写一个方法找出4位数的所有吸血鬼数字,代码如下,请问哪里出了问题,不报错,运行就出错
一、概念
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。
如:
1260 = 21 * 60
1827 = 21 * 87
2187 = 27 * 81
二、程序代码
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
listVampireNumbers();
}
//输出所有4位吸血鬼数字,形如“n0 = n1 * n2”
static void listVampireNumbers() {
int n0; //乘积(疑似吸血鬼数字)
int n1; //被乘数
int n2; //乘数
char[] arr1 = null; //存储乘积各位数字的数组
char[] arr2 = null; //存储被乘数和乘数各位数字的数组
int i;
for(n1=10; n1100; n1++) {
for(n2=n1+1; n2100; n2++) {
n0 = n1 * n2; //得到疑似吸血鬼数字
//判断疑似吸血鬼数字是否是4位数
if(n0 1000 || n0 = 10000) {
continue;
}
//将乘积的各位数字存储到数组arr1中,将被乘数与乘数的各位数字存储到数组arr2中
arr1 = String.valueOf(n0).toCharArray();
arr2 = (n1 + "" + n2).toCharArray();
//将数组arr1、arr2排序
Arrays.sort(arr1);
Arrays.sort(arr2);
//逐个比较两个数组的元素
for(i=0; iarr1.length; i++) {
if(arr1[i] != arr2[i]) {
break;
}
}
//两个数组的元素不完全相同
if(i arr1.length) {
continue;
}
System.out.println(n0 + " = " + n1 + " * " + n2);
}
}
}
}
三、运行结果
1395 = 15 * 93
1260 = 21 * 60
1827 = 21 * 87
2187 = 27 * 81
1530 = 30 * 51
1435 = 35 * 41
6880 = 80 * 86
相关问答
Q1: 求java的一个求吸血鬼数字的算法
public class XiXueGuiShu {
public static void main(String[] args) {
for (int i = 10; i = 99; i++) {
for (int j = i + 1; j = 99; j++) {
// 计算出所有两位数吸血鬼数字java代码的积
int sum = i * j;
if (sum = 9999 sum = 1000) {
String[] t1 = (sum + "").split("");
// 对数组t1进行升序排列
Arrays.sort(t1);
// 这个地方吸血鬼数字java代码,把i和j都当String型吸血鬼数字java代码的字符串加起来组成一个四位数
String[] t2 = ("" + i + j).split("");
// 对t2进行升序排列
Arrays.sort(t2);
//下面判断是通过两个已经排好序的数组相比较,当完全相同时执行
if (Arrays.equals(t1, t2)) {
System.out.println(i + "*" + j + "=" + i * j);
}
}
}
}
}
}
Q2: java吸血鬼数字详解
我自己分析的: 吸血鬼数字是什么假设a为吸血鬼数字,有b,c组成1。a的位数要是偶数2。组成这个数字的两个数字b、c位数一样3。最重要的,这两个数字b、c每一位拼起来能拼出a 根据分析实现算法:0。循环取a1。判断位数2。把a拆散成数组d3。双重循环d拼数字4。判断拼出的数字b,c之积是否等于a 算法可能不够好,但是能实现 建议楼主遇到问题先分析,分析出来的,找人帮你分析,看代码不如听别人给你分析效果好!
Q3: 如何用Java实现所有的吸血鬼数字的输出?
public static void main(String[] args) { String[] ar_str1, ar_str2; int sum = 0; /SPAN/li for (int i = 10; i 100; i++) { /SPAN/li for (int j = i + 1; j 100; j++) { /SPAN/li int i_val = i * j; /SPAN/li if (i_val 1000 || i_val 9999) /SPAN/li continue; // 积小于1000或大于9999排除,继续下一轮环 /SPAN/li ar_str1 = String.valueOf(i_val).split(""); /SPAN/li ar_str2 = (String.valueOf(i) + String.valueOf(j)).split(""); /SPAN/li java.util.Arrays.sort(ar_str1); java.util.Arrays.sort(ar_str2); if (java.util.Arrays.equals(ar_str1, ar_str2)) { /SPAN/li // 排序后比较,为真则找到一组 /SPAN/li sum++; System.out.println("第" + sum + "组: " + i + "*" + j + "=" /SPAN/li + i_val); } } } System.out.println("共找到" + sum + "组吸血鬼数"); /SPAN/li } }
Q4: java 找出所有4位数的吸血鬼数字,帮下面这个代码,使能编译运行。
public class Vampire {
public static void main(String[] args) {
String s="";
for(int i=1;i10;i++){
for(int j=0;j10;j++){
s+=(10*i+j)+" "; //这里有改动吸血鬼数字java代码,双引号里面应该有个空格。
}
}
//System.out.println(s);
String[] arr=s.split(" ");
System.out.println("两位数吸血鬼数字java代码的个数:"+arr.length);
int a,b;
int count=0;
for(int j=0;jarr.length;j++){
for(int k=0;karr.length;k++){
a=Integer.valueOf(arr[j]).intValue();
b=Integer.valueOf(arr[k]).intValue();
if(a*b10000a*b1000(a*b)%100!=0){
count++;
System.out.println(arr[j]+" "+arr[k]+" ");
}
}
System.out.println();
}
System.out.println("The total number is "+count);
}
}
吸血鬼数字java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java吸血鬼游戏、吸血鬼数字java代码的信息别忘了在本站进行查找喔。






