0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
import java.util.*;
class Euler32 {
public static void main(String[] args) {
int total=0;
LinkedList<Integer> remDigits=new LinkedList<Integer>();
for(int n=1;n<=9;n++)
remDigits.add(new Integer(n));
for(int n9=2;n9<9;n9++){ //starting digit can't be 1 or 2
int thouC=(remDigits.get(n9)).intValue();
remDigits.remove(n9);
for(int n8=0;n8<8;n8++){
int hundC=(remDigits.get(n8)).intValue();
remDigits.remove(n8);
for(int n7=0;n7<7;n7++){
int tenC=(remDigits.get(n7)).intValue();
remDigits.remove(n7);
for(int n6=0;n6<6;n6++){
int oneC=(remDigits.get(n6)).intValue();
remDigits.remove(n6);
int c=1000*thouC+100*hundC+10*tenC+oneC;
boolean found=false;
int n5=0;
while((n5<5)&&(found==false)){
int ab1=(remDigits.get(n5)).intValue();
remDigits.remove(n5);
int n4=0;
while((n4<4)&&(found==false)){
int ab2=(remDigits.get(n4)).intValue();
remDigits.remove(n4);
int n3=0;
while((n3<3)&&(found==false)){
int ab3=(remDigits.get(n3)).intValue();
remDigits.remove(n3);
int n2=0;
while((n2<2)&&(found==false)){
int ab4=(remDigits.get(n2)).intValue();
remDigits.remove(n2);
int ab5=(remDigits.get(0)).intValue();
int a3=100*ab1+10*ab2+ab3;
int a4=1000*ab1+100*ab2+10*ab3+ab4;
int b2=10*ab4+ab5;
int b1=ab5;
if((a3*b2)==c){
found=true;
total+=c;
System.out.println(c+" = "+a3+"x"+b2);
}
else if((a4*b1)==c){
found=true;
total+=c;
System.out.println(c+" = "+a4+"x"+b1);
}
remDigits.add(n2,new Integer(ab4));
n2++;
}
remDigits.add(n3,new Integer(ab3));
n3++;
}
remDigits.add(n4,new Integer(ab2));
n4++;
}
remDigits.add(n5,new Integer(ab1));
n5++;
}
remDigits.add(n6,new Integer(oneC));
}
remDigits.add(n7,new Integer(tenC));
}
remDigits.add(n8,new Integer(hundC));
}
remDigits.add(n9,new Integer(thouC));
}
System.out.println(total);
}
}
http://projecteuler.net/problem=32
http://projecteuler.net/thread=32;page=2
>My code is absolutely hideous, but it works and it's fast.
Извиняюсь за длинный пост, но это просто шедевр, я не мог это не запостить!
Запостил:
TheHamstertamer ,
10.05.2012 (Updated 25.03.2018 )
Да не особо: http://ideone.com/NuqZS http://ideone.com/oJmBD
http://projecteuler.net/thread=32;page=8