仲翎逸仙

放下傲慢,放下贪嗔痴,专注于此时此刻,日日如此,必有所成。

人过大佛寺,寺佛大过人

原题描述:人过大佛寺 * 我 =寺佛大过人   ,每个中文代表各不相同的0~9的数字。求出这个五位数


代码:

import java.util.Arrays;
//大致思路: 通过穷举五位数,找出一个数,如果这个数字能整除它的回文数,并且结果所得的数字和这个数不相同,也就是说总共有6个 0~9的数字。

public class huiwen {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		printAll();
	}

	private static void printAll() {
		// TODO Auto-generated method stub
		boolean flag = true;
		boolean IsUsed[] = new boolean[10];    //用来保存乘数的数组

		int number, revert_number, temp, v = 0;

		for (number = 12345; number < 100000; number++) {
			flag = true;
			Arrays.fill(IsUsed, false);     
			temp = number;
			revert_number = 0;

			for (int i = 0; i < 5 && flag == true; i++) {
				v = temp % 10;
				revert_number = revert_number * 10 + v;
				temp /= 10;
				if (IsUsed[v]) {
					flag = false;
					// break;  通过循环条件增加 flag==true 来取消 break 语句
				} else {
					IsUsed[v] = true;
				}
			}

			if (flag == true && (revert_number % number == 0)) {
				v = revert_number / number;
				if (v < 10 && IsUsed[v] == false) {//只有该乘数不包含在五位数之内才合法
					System.out.print("the result is: " + number + " * " + v + " = " + revert_number);
				}
			}

		}

	}

}
测试结果:


谢谢观看!

阅读更多
版权声明:本文为博主原创文章,转载请注明地址。 https://blog.csdn.net/u012150590/article/details/51543536
个人分类: 数据结构与算法
上一篇Java 内存分配全面浅析
下一篇数字哑谜
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭