A*2=B,A*3=C,A*4=D,A*5=E,A*6=F,A,B,C,D,E,F分别都是由a,b,c,d,e,f六个数字组成(a,b,c,d,e,f都是大于0小于10的整数),求A。
解决方案 »
- JAVA初学者提问(很简单,30分)
- 请大虾帮帮我
- 我有放
- 如何在Tomcat中增加自定义参数
- jdbc连接sqlserver个人版问题(急!!!在线等)
- 请大家救救我吧 jdk 死活装不上啊
- SWT程序调用 JNI 有时系统会自动退出,请怎么解决?
- java client端的socket默认是阻塞的吗?如果我不断的发送数据给server,也就是只write(),发现连者发送的数据有的发送了,有的没有发送,请问
- 关于hashMap的排序问题,在线等。。
- 图书介绍<<Design Patterns in Java>>,James W. Cooper大作!!!下载速速!
- 求jspSmart组件
- java的字符处理方法如何处理带有括号的字符串
比如A=[a b c d e f]'
//因ABCDEF且是由六个不同数字组成的六位数,因此F最大值为987654,且A不会超过164609
for (int A=123456; A<164598; ++A)
{
if (isOK(2 * A))
{
if (isOK(3 * A))
{
if (isOK(4 * A))
{
if (isOK(5 * A))
{
if (isOK (6 * A))
{
System.out.println("◆" + A);
}
}
}
}
}
}
private boolean isOK(int num)
{
String strNum = "" + num; if ((strNum.length() == 6)
&& (strNum.charAt(0) != strNum.charAt(1))
&& (strNum.charAt(0) != strNum.charAt(2))
&& (strNum.charAt(0) != strNum.charAt(3))
&& (strNum.charAt(0) != strNum.charAt(4))
&& (strNum.charAt(0) != strNum.charAt(5))
&& (strNum.charAt(1) != strNum.charAt(2))
&& (strNum.charAt(1) != strNum.charAt(3))
&& (strNum.charAt(1) != strNum.charAt(4))
&& (strNum.charAt(1) != strNum.charAt(5))
&& (strNum.charAt(2) != strNum.charAt(3))
&& (strNum.charAt(2) != strNum.charAt(4))
&& (strNum.charAt(2) != strNum.charAt(5))
&& (strNum.charAt(3) != strNum.charAt(4))
&& (strNum.charAt(3) != strNum.charAt(5))
&& (strNum.charAt(4) != strNum.charAt(5)))
{
return true;
}
return false;
}
{
if ((isOK(2 * A)) && (isOK(3 * A)) && (isOK(4 * A)) && (isOK(5 * A)) && (isOK (6 * A)))
{
System.out.println("◆" + A);
}
}
if (isOK(A) && (isOK(2 * A)) && (isOK(3 * A)) && (isOK(4 * A)) && (isOK(5 * A)) && (isOK (6 * A)))A自己也是需要判断滴结果为:◆126984◆136984◆137465◆140327◆142857◆153846◆156427◆158630◆158730◆160793
public class Find {
public boolean containDup(String s){
for (int i=1; i<=9 ;i++){
if ( s.indexOf(i+48) < s.lastIndexOf(i+48) )
return true;
}
return false;
} public boolean sameChar(String s1,String s2){
if (s2.length()!=6) return false;
if ( containDup(s2) ) return false;
for (int i=0; i<6 ;i++){
if ( s2.indexOf( s1.charAt(i) ) == -1 )
return false;
}
return true;
}
public void printResult(){
String s="";
for(int i=123456;i<=987654;i++){
s=""+i;
if ( containDup(s) ) continue;
if ( sameChar(s,""+i*2) && sameChar(s,""+i*3) && sameChar(s,""+i*4) && sameChar(s,""+i*5) && sameChar(s,""+i*6) )
System.out.println("A="+i+"\nB="+i*2+"\nC="+i*3+"\nD="+i*4+"\nE="+i*5+"\nF="+i*6);
}
}
public static void main(String[] args) {
Find f=new Find();
f.printResult(); }
}
编码虽然烂了点,不过结果是对的
A=142857
B=285714
C=428571
D=571428
E=714285
F=857142
A的最高位只可能是1,不然E和F该是7位数了
for(int i=123456;i<=198765;i++){
......................
public class NumberGuess { private static int[] number = {0,1,2,3,4,5,6,7,8,9};
private static int[] sixNumber = new int[6];
private static String strA;
public boolean check(int toChecked) {
boolean checkFlag =false;
strA = String.valueOf(toChecked);
if(checkReapeated(strA)) {
return false;
}
for(int i = 2; i < 6 ; i++) {
if(isAppearOnce(toChecked*i,strA)) {
checkFlag = false;
break;
} else {
checkFlag = true;
}
}
return checkFlag;
}
private boolean isAppearOnce(int numberToBeChecked,String sourceString) {
boolean isAppearOnce = false;
String strNumberToBeChecked = String.valueOf(numberToBeChecked);
if(!checkAllCharsAppeared(strNumberToBeChecked, sourceString)) {
isAppearOnce = true;
}
return isAppearOnce;
} private boolean checkReapeated(String sourceString) {
boolean isRepeated = false;
for(int i = 0; i < sourceString.length(); i++) {
char c = sourceString.charAt(i);
if(sourceString.indexOf(c)!=sourceString.lastIndexOf(c)) {
isRepeated = true;
break;
}
}
return isRepeated;
}
private boolean checkAllCharsAppeared(String strNumberToBeChecked,String sourceString) {
for(int i = 0; i < 6; i++) {
char c = sourceString.charAt(i);
if(strNumberToBeChecked.indexOf(c)<0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
int MAX = 200000;
int MIN = 100000;
NumberGuess guess = new NumberGuess();
for(int i = MIN; i< MAX; i++) {
if(guess.check(i)) {
System.out.println(i);
System.out.println(i*2);
System.out.println(i*3);
System.out.println(i*4);
System.out.println(i*5);
System.out.println(i*6);
break;
}
}
}
}
三角得的挺快的嘛
:)
public static void main(String args[]) {
int a = 0;
final int AMAX = 987654/6;
for(a=102345; a<=AMAX; a++) {
if (check(""+a) ||(check(""+2*a)) || ( check(""+3*a))
|| (check(""+4*a)) || (check(""+5*a)) || (check(""+6*a)))
continue;
System.out.println(a);
}
} public static boolean check(String s) {
if ( s.indexOf('0') != -1 ) {
return true;
}
int len = s.length();
for(int i=0; i<len-1; i++) {
if (s.indexOf(s.charAt(i), i+1) != -1) {
return true;
}
}
return false;
}
}
但是代码有点不全面
你没有检查A、B、C、D、E、F几个数字的组成是否相同啊
得出这个结果应该是个巧合
比如A=142857
B=285714
他们都是由[1,2,4,5,7,8]组成的,你明明没有检查,
我写的class也就是比你的多了一个这个方法:
boolean sameChar(String,String)
"A,B,C,D,E,F分别都是由a,b,c,d,e,f六个数字组成"