《Java 编程思想》-第4章 控制执行流程 笔记
来源:互联网 发布:可靠性仿真软件 编辑:程序博客网 时间:2024/05/23 10:29
第4章 控制执行流程
“吸血鬼数字”就是指位数为偶数的数字(我们算得是4位的),可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数字,其中从偶数位数字中选取的数字可以任意排列。以两个0结尾的数字是不允许的
实现程序:
实现一
import java.util.Arrays;public class VampireNumber {/*比较四位数是否与两个两位数组合相同*/ public static boolean equals(int a,int b,int num) { String stra=String.valueOf(a); String strb=String.valueOf(b); String str=stra.concat(strb); String strNum=String.valueOf(num); char [] chars=str.toCharArray(); char [] charNum=strNum.toCharArray(); Arrays.sort(chars);//排序 Arrays.sort(charNum);//排序 if(Arrays.equals(chars, charNum))//比较序列是否相同 { return true; } return false; } public static void main(String[] args) { for(int num=1000;num<10000;num++) { if(0!=num%100)//非两个0结尾的四位数 {/*最大的两位整数也不超过四位数的开方*/ for(int i=10;i<(int)Math.sqrt(num);i++) { if(0==num%i) { int a=i; int b=num/i; if(equals(a,b,num)) { System.out.println(num+"="+a+"*"+b); } } } } } }
实现二
import java.util.Arrays;public class VampireNumber { public static void main(String[] args) { for(int i = 1; i < 100; i++){ for(int j = i+1; j < 100; j++){ //只要求输出四位数 if(i * j >= 1000){ String a = i + "" + j; String b = i * j + ""; if(equal(a, b)){ System.out.printf("%d * %d = %d", i, j, i*j); System.out.println(); } } } } } //判断两个字符串包含的数字是否一致 private static boolean equal(String a, String b) { //先排序 char[] as = a.toCharArray(); char[] bs = b.toCharArray(); Arrays.sort(as); //排序 Arrays.sort(bs); //排序 if(Arrays.equals(as, bs)){ return true; } return false; } }
运行结果:
1260=21*60
1395=15*93
1435=35*41
1530=30*51
1827=21*87
2187=27*81
6880=80*86
若要实现6位,8位的,可以自己修改程序。
0 0
- 《Java 编程思想》-第4章 控制执行流程 笔记
- Java编程思想第4章:控制执行流程
- Java编程思想第4章:控制执行流程
- Java编程思想学习笔记(三) 第4章 控制执行流程
- [学习笔记][Java编程思想]第4章:控制执行流程
- 四.控制执行流程——Java编程思想第4版学习笔记
- java编程思想学习笔记(4)--控制执行流程
- 4控制执行流程-Java编程思想
- 控制执行流程,初始化与清理-java编程思想-第4、5章
- 《JAVA编程思想》笔记-操作符&控制执行流程
- java编程思想之控制执行流程
- Java编程思想-04控制执行流程
- java编程思想之控制执行流程
- Java编程思想笔记——第四章 控制执行流程
- Java编程思想第四版-第四章(控制执行流程 )笔记
- Java 编程思想(第四版)学习笔记(4 )控制执行流程
- JAVA编程思想-第四章 控制执行流程
- 《Java编程思想》第四章 控制执行流程
- 从汉诺塔问题谈递归转非递归的通法
- sublime 列模式操作
- cocos2dx js 关于canvas绘图模糊问题及解决办法
- webpack ------ loaders
- 复化辛普森法
- 《Java 编程思想》-第4章 控制执行流程 笔记
- 学习笔记之建立lamp平台
- EasyLogging++学习笔记(1)—— 简要介绍
- Windows 10编译Hadoop 2.6.0源码
- 大一上c++上机实践
- tcpdump使用参考链接
- Linux图形界面知识(介绍X、X11、GNOME、Xorg、KDE等之间的关系)
- iPhone中的info.plist文件
- 多线程下载问题