枚举算法

问题描述:
假设a b c d e代表1~9不同的5个数字(注意是各不相同的数字,且不含0),能满足形:abcde = cbdce这样的算式一共有多少种呢?
解题分析:先给a赋值,再给b赋值,当a和b的值不相同时再给c赋值,当a、b的值不等于c时,再给d赋值,当a、b、c的都不等有d时,再给e赋值,当a、b、c、d的值都不等于e时再进行计算。计算时个位的数不变,十位的数乘以10,百位的数要乘以100,然后再相加,最后进行计算。用ans来计数,每找到一个:ab * cde = cbd * ce这样的算式ans就加1。
代码如下:

public class _02 {
	public static void main(String[] args){
		int ans=0;
		for (int a=1;a<10;a++){
			for (int b=1;b<10;b++){
				if (a!=b) for(int c=1;c<10;c++){
					if(c!=a && c!=b) for (int d=1;d<10;d++){
						if(d!=a && d!=b && d!=c) for (int e = 1;e<10;e++){
							if(e!=a && e!=b && e!=c && e!=d){
								if((a*10+b)*(c*100+d*10+e)==(a*100+d*10+b)*(c*10+e)){
									ans++;
									System.out.printf("(%d*10+%d)*(%d*100+%d*10+%d)==(%d*100+%d*10+%d)*(%d*10+%d)==%d\n",a,b,c,d,e,a,d,b,c,e,(a*100+d*10+b)*(c*10+e));
								}
							}
						}
					}
				}
			}
		}
		System.out.println(ans);
	}

}

答案:142
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值