细心的小伙伴可能发现我断更了一天,为什么呢?那是因为我开学啦(才不是因为懒呢)
那么,不废话了 第三章 3.2 炸弹人
public void bomberman(char[][] map){
int most=0;
int a1=0,a2=0;
Scanner sc=new Scanner(System.in);
for(int i=0;i<map.length;i++){
map[i]=sc.next().toCharArray();
}
for(int i=0;i<map.length;i++){
for(int j=0;j<map[0].length;j++){
if(map[i][j]=='.'){
int x=0,y=0;
int sum=0;
x=i;
y=j;
while(map[x][y]!='#'){
if(map[x][y]=='G')
sum++;
x--;
}
x=i;
y=j;
while(map[x][y]!='#'){
if(map[x][y]=='G')
sum++;
x++;
}
x=i;
y=j;
while(map[x][y]!='#'){
if(map[x][y]=='G')
sum++;
y--;
}
x=i;
y=j;
while(map[x][y]!='#'){
if(map[x][y]=='G')
sum++;
y++;
}
if(most<sum){
most=sum;
a1=i;
a2=j;
}
}
}
}
System.out.println("the best place is ("+a1+","+a2+"),which can kill "+most
+" enemies!");
}
其实就是完全列一遍,比较好理解。
3.3 火柴棍等式
public int Matchnum(int a){
int[] matchNeed={6,2,5,5,4,5,6,3,7,6};
int sum=0;
while(a/10!=0){
sum+=matchNeed[a%10];
a=a/10;
}
sum+=matchNeed[a];
return sum;
}
public static void main(String[] args){
algorithm test=new algorithm();
Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
for(int i=0;i<11111;i++){
for(int j=0;j<11111;j++){
if(test.Matchnum(i)+test.Matchnum(j)+test.Matchnum(i+j)==m-4){
int sum=i+j;
System.out.println(i+"+"+j+"="+sum);
}
}
}
}
3.4 全排列 啊哈磊大佬完全把谜题留到第四章啦~先用现学的枚举做一遍吧,迫不及待想看第四章了?
public void Permutations(int n){
int[] book=new int[11];
for(int i=1;i<=9;i++)
book[i]=0;
if(n==1)
System.out.println("1");
if(n==2)
System.out.println("12,21");
if(n==3){
for(int a=1;a<=3;a++){
for(int b=1;b<=3;b++){
for(int c=1;c<=3;c++){
for(int i=1;i<=3;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
for(int i=1;i<=3;i++)
sum+=book[i];
if(sum==3) {
System.out.print(a);
System.out.print(b);
System.out.print(c+" ");
}
}}}}
if(n==4) {
for (int a = 1; a <= 4; a++) {
for (int b = 1; b <= 4; b++) {
for (int c = 1; c <= 4; c++) {
for (int d = 1; d <= 4; d++) {
for(int i=1;i<=4;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
book[d]=1;
for(int i=1;i<=4;i++)
sum+=book[i];
if(sum==4) {
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d+" ");
}
}
}
}
}
}
if(n==5){
for(int a=1;a<=5;a++) {
for (int b = 1; b <= 5; b++) {
for (int c = 1; c <= 5; c++) {
for (int d = 1; d <= 5; d++) {
for(int e=1;e<=5;e++){
for(int i=1;i<=5;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
book[d]=1;
book[e]=1;
for(int i=1;i<=5;i++)
sum+=book[i];
if(sum==5) {
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
System.out.print(e+" ");
}
}}}}}
}
if(n==6){
for(int a=1;a<=6;a++) {
for (int b = 1; b <= 6; b++) {
for (int c = 1; c <= 6; c++) {
for (int d = 1; d <= 6; d++) {
for(int e=1;e<=6;e++){
for(int f=1;f<=6;f++){
for(int i=1;i<=6;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
book[d]=1;
book[e]=1;
book[f]=1;
for(int i=1;i<=6;i++)
sum+=book[i];
if(sum==6) {
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
System.out.print(e);
System.out.print(f+" ");
}
}}}}}}
}
if(n==7){
for(int a=1;a<=7;a++) {
for (int b = 1; b <= 7; b++) {
for (int c = 1; c <= 7; c++) {
for (int d = 1; d <= 7; d++) {
for(int e=1;e<=7;e++){
for(int f=1;f<=7;f++){
for(int g=1;g<=7;g++){
for(int i=1;i<=7;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
book[d]=1;
book[e]=1;
book[f]=1;
book[g]=1;
for(int i=1;i<=7;i++)
sum+=book[i];
if(sum==7) {
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
System.out.print(e);
System.out.print(f);
System.out.print(g+" ");
}
}}}}}}}
}
if(n==8){
for(int a=1;a<=8;a++) {
for (int b = 1; b <= 8; b++) {
for (int c = 1; c <= 8; c++) {
for (int d = 1; d <= 8; d++) {
for(int e=1;e<=8;e++){
for(int f=1;f<=8;f++){
for(int g=1;g<=8;g++){
for(int h=1;h<=8;h++){
for(int i=1;i<=8;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
book[d]=1;
book[e]=1;
book[f]=1;
book[g]=1;
book[h]=1;
for(int i=1;i<=8;i++)
sum+=book[i];
if(sum==8) {
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
System.out.print(e);
System.out.print(f);
System.out.print(g);
System.out.print(h+" ");
}
}}}}}}}}
}
if(n==9){
for(int a=1;a<=9;a++) {
for (int b = 1; b <= 9; b++) {
for (int c = 1; c <= 9; c++) {
for (int d = 1; d <= 9; d++) {
for(int e=1;e<=9;e++){
for(int f=1;f<=9;f++){
for(int g=1;g<=9;g++){
for(int h=1;h<=9;h++){
for(int k=1;k<=9;k++){
for(int i=1;i<=9;i++)
book[i]=0;
int sum=0;
book[a]=1;
book[b]=1;
book[c]=1;
book[d]=1;
book[e]=1;
book[f]=1;
book[g]=1;
book[h]=1;
book[k]=1;
for(int i=1;i<=9;i++)
sum+=book[i];
if(sum==9) {
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
System.out.print(e);
System.out.print(f);
System.out.print(g);
System.out.print(h);
System.out.print(k+" ");
}
}}}}}}}}}
}
}
public static void main(String[] args){
algorithm test=new algorithm();
Scanner sc=new Scanner(System.in);//要求不大于9的正整数
int m=sc.nextInt();
test.Permutations(m);
}
呕——太变态了!说到底数据太多枚举听起来就很不靠谱嘛!还是期待期待第四章好了。