人过大佛寺,寺佛大过人

原题描述:人过大佛寺 * 我 =寺佛大过人   ,每个中文代表各不相同的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);
				}
			}

		}

	}

}
测试结果:


谢谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值