输出四位数中所有吸血鬼数 [java重学]
来源:互联网 发布:淘宝上买东西怎样付款 编辑:程序博客网 时间:2024/05/02 01:58
import java.util.Arrays;
/**
* 一、吸血鬼数字的两个因子不能同时以0结尾,故用条件i_val % 100 == 0 先过滤一次。
* 二、任何4位数i_val都可以表示为1000a+100b+10c+d
* 如果其是吸血鬼数字,其两个因子是i和j,那么i+j只能有以下六种情况:
* 1.(i+j)=10a+b+10c+d
* 2.(i+j)=10a+10b+c+d
* 3.(i+j)=10a+b+c+10d
* 4.(i+j)=a+10b+c+10d
* 5.(i+j)=a+10b+10c+d
* 6.(i+j)=a+b+10c+10d
* 所以无论上述的哪种情况下i_val-(i+j)都一定能被9整除,故不满足这个条件的一定不是吸血鬼数字,
* 所以通过条件(i_val - i - j) % 9 != 0再过滤一次。
*/
public class Vampire {
public static void main(String[] arg) {
String[] ar_str1, ar_str2;
int sum = 0;
int from;
int to;
int i_val;
int count = 0;
for (int i = 10; i < 100; i++) {
from = Math.max(1000 / i, i + 1);
to = Math.min(10000 / i, 100); //确保i*j是一个四位数
for (int j = from; j < to; j++) {
i_val = i * j;
if (i_val % 100 == 0 || (i_val - i - j) % 9 != 0) {
continue;
}
count++;
ar_str1 = String.valueOf(i_val).split("");
ar_str2 = (String.valueOf(i) + String.valueOf(j)).split("");
Arrays.sort(ar_str1);
Arrays.sort(ar_str2);
if (Arrays.equals(ar_str1, ar_str2)) {// 排序后比较,为真则找到一组
sum++;
System.out.println("第" + sum + "组: " + i + "*" + j + "=" + i_val);
}
}
}
System.out.println("共找到" + sum + "组吸血鬼数");
System.out.println(count);
}
}
/**
* 一、吸血鬼数字的两个因子不能同时以0结尾,故用条件i_val % 100 == 0 先过滤一次。
* 二、任何4位数i_val都可以表示为1000a+100b+10c+d
* 如果其是吸血鬼数字,其两个因子是i和j,那么i+j只能有以下六种情况:
* 1.(i+j)=10a+b+10c+d
* 2.(i+j)=10a+10b+c+d
* 3.(i+j)=10a+b+c+10d
* 4.(i+j)=a+10b+c+10d
* 5.(i+j)=a+10b+10c+d
* 6.(i+j)=a+b+10c+10d
* 所以无论上述的哪种情况下i_val-(i+j)都一定能被9整除,故不满足这个条件的一定不是吸血鬼数字,
* 所以通过条件(i_val - i - j) % 9 != 0再过滤一次。
*/
public class Vampire {
public static void main(String[] arg) {
String[] ar_str1, ar_str2;
int sum = 0;
int from;
int to;
int i_val;
int count = 0;
for (int i = 10; i < 100; i++) {
from = Math.max(1000 / i, i + 1);
to = Math.min(10000 / i, 100); //确保i*j是一个四位数
for (int j = from; j < to; j++) {
i_val = i * j;
if (i_val % 100 == 0 || (i_val - i - j) % 9 != 0) {
continue;
}
count++;
ar_str1 = String.valueOf(i_val).split("");
ar_str2 = (String.valueOf(i) + String.valueOf(j)).split("");
Arrays.sort(ar_str1);
Arrays.sort(ar_str2);
if (Arrays.equals(ar_str1, ar_str2)) {// 排序后比较,为真则找到一组
sum++;
System.out.println("第" + sum + "组: " + i + "*" + j + "=" + i_val);
}
}
}
System.out.println("共找到" + sum + "组吸血鬼数");
System.out.println(count);
}
}
0 0
- 输出四位数中所有吸血鬼数 [java重学]
- 四位数中吸血鬼数的查找
- java 取四位数吸血鬼数
- 《java编程思想》第四章练习10找出所有四位数的吸血鬼数
- 找出四位数的所有吸血鬼数字(JAVA)
- JAVA 编程思想 找出所有四位数的吸血鬼数字
- Java 找出四位数的所有吸血鬼数字 基础代码实例
- java 找出4位数的所有吸血鬼数字
- JAVA找出4位数的所有吸血鬼数字
- 查找四位数的吸血鬼数字(java编程思想)
- 找出4位数的所有吸血鬼数字
- 找出4位数的所有吸血鬼数字
- java第三周--(输出任意数之间的所有完数;3位数的任意整数,输出其降序数)
- 得出四位数中的吸血鬼数字
- 【Java】【TIJ】Java实现找出4位数的所有吸血鬼数字
- 关于四位数的“吸血鬼数字”java写法和c的写法
- 【work】输出所有能被3整除,且个位数为4或者百位数为4的四位数
- java输出吸血鬼数字小结
- mac上访问samba服务器
- vc6.0快捷键
- C - The C Answer (2nd Edition) - Exercise 1-1
- 1、jquery.form附件上传
- centos6.2 下安装mysql5.5
- 输出四位数中所有吸血鬼数 [java重学]
- linux网络基础
- Android数据库缓存
- DDL触发器引起的ORA-06512 (同时兼有ORA-00376)
- poj 3782 LCA+树链剖分
- 树王
- Android数据库缓存
- js获取复选框的tr中的值,并且算出合计
- 46.求1+2+3+......+n