2013第四届第二题:马虎的算式

【题目】
小明是一个急性子,上小学的时候经常把老师写在黑板上的题目抄错。
有一次,老师出得题目是:36495=? 他却给抄成了:39645=?
但结果却很戏剧性,他的答案竟然是对的!!
因为36495=39645=17820
类似这样的巧合情况可能还有很多,
比如:27594=29754
假设a b c d e代表1-9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如:abcde=adbce这样的算式一共有多少种呢?

【代码步骤】

    *  用5重循环枚举

    *注意题目中要求:假设a b c d e代表1-9不同的5个数字(注意是各不相同的数字,且不含0)

方法一:

import java.util.Scanner;
public class E1 {
    public static void main(String[] args) {
        int sum=0;
        for (int i = 1; i<10; i++) {
            for (int j = 1; j <10; j++) {
                if(j!=i) {
                for (int j2 =1; j2 <10; j2++) {
                    if(j2!=i&&j2!=j) {
                    for (int k =1; k <10; k++) {
                        if(k!=i&&k!=j&&k!=j2) {
                        for (int k2 =1; k2<10; k2++) {
                            if(k2!=i&&k2!=j&&k2!=j2&&k2!=k) {
                            if((i*10+j)*(j2*100+k*10+k2)==(i*100+k*10+j)*(j2*10+k2)) {
                                sum++;
                            }
                        }
                     }
                  }
               }
            }
         }
      }    
   }
 }
        System.out.println(sum);
}
}


方法二:

import java.util.Scanner;
public class E1 {
	public static void main(String[] args) {
		int sum=0;
		for (int i = 1; i<10; i++) {
			for (int j = 1; j <10; j++) {
				if(j==i) {continue;}
				for (int j2 =1; j2 <10; j2++) {
					if(j2==j||j2==i) {continue;}
					for (int k =1; k <10; k++) {
						if(k==j2||k==j||k==i) {continue;}
						for (int k2 =1; k2<10; k2++) {
							if(k2==k||k2==j2||k2==j||k2==i) {continue;}
							if((i*10+j)*(j2*100+k*10+k2)==(i*100+k*10+j)*(j2*10+k2)) {
								sum++;
							}
						}
					}
				}
			}
		}
		System.out.println(sum);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_53950993/article/details/123856627