【Java编程思想
Thinking in Java
这个程序我自己敲出来的代码,用的方法很笨的感觉,将就着吧,目前没时间想那么多,得继续学啊。
1 class Vnum{ 2 public static void main(String args[]){ 3 CheckVampire cVampire = new CheckVampire(); 4 for(int i=1000;i<10000;i++){ 5 if(cVampire.isVampire(i)){ 6 System.out.println(i); 7 } 8 } 9 } 10 11 static class CheckVampire{ 12 // 将num拆分为每一个,保存在numArr[]中 13 void EveryBit(int num,int numArr[]){ 14 if((1000>num)||(10000<num)){ 15 numArr[0]=numArr[1]=numArr[2]=numArr[3]=0; 16 return; 17 }else if(num%100==0){ 18 numArr[0]=numArr[1]=numArr[2]=numArr[3]=0; 19 return; 20 }else{ 21 numArr[3]=num/1000; 22 numArr[2]=num%1000/100; 23 numArr[1]=num%100/10; 24 numArr[0]=num%10; 25 } 26 } 27 //输入一个num,返回值为true则该num为吸血鬼数字 28 //由于是检测1000~9999以内的吸血鬼数字,则使用穷举法= =,网上应该有更好的办法 29 boolean isVampire(int num){ 30 int numEveryBit[]=new int[4]; 31 EveryBit(num,numEveryBit); 32 if(num==(numEveryBit[0]*10+numEveryBit[1])*(numEveryBit[2]*10+numEveryBit[3])){ 33 return true; 34 } 35 else if(num==(numEveryBit[0]*10+numEveryBit[1])*(numEveryBit[3]*10+numEveryBit[2])){ 36 return true; 37 } 38 else if(num==(numEveryBit[1]*10+numEveryBit[0])*(numEveryBit[2]*10+numEveryBit[3])){ 39 return true; 40 } 41 else if(num==(numEveryBit[1]*10+numEveryBit[0])*(numEveryBit[3]*10+numEveryBit[2])){ 42 return true; 43 } 44 45 else if(num==(numEveryBit[0]*10+numEveryBit[2])*(numEveryBit[1]*10+numEveryBit[3])){ 46 return true; 47 } 48 else if(num==(numEveryBit[0]*10+numEveryBit[2])*(numEveryBit[3]*10+numEveryBit[1])){ 49 return true; 50 } 51 else if(num==(numEveryBit[2]*10+numEveryBit[0])*(numEveryBit[1]*10+numEveryBit[3])){ 52 return true; 53 } 54 else if(num==(numEveryBit[2]*10+numEveryBit[0])*(numEveryBit[3]*10+numEveryBit[1])){ 55 return true; 56 } 57 58 else if(num==(numEveryBit[0]*10+numEveryBit[3])*(numEveryBit[1]*10+numEveryBit[2])){ 59 return true; 60 } 61 else if(num==(numEveryBit[0]*10+numEveryBit[3])*(numEveryBit[2]*10+numEveryBit[1])){ 62 return true; 63 } 64 else if(num==(numEveryBit[3]*10+numEveryBit[0])*(numEveryBit[1]*10+numEveryBit[2])){ 65 return true; 66 } 67 else if(num==(numEveryBit[3]*10+numEveryBit[0])*(numEveryBit[2]*10+numEveryBit[1])){ 68 return true; 69 } 70 else{ 71 return false; 72 } 73 } 74 } 75 }
作者:android无聊大神
来源链接:https://www.cnblogs.com/JackOwen/p/3912439.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。