蓝桥杯:颠倒的价牌

颠倒的价牌


    小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。


    其标价都是4位数字(即千元不等)。


    小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参见p1.jpg)。


    这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0 都可以。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊!! 


    当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为开始数字。


    有一天,悲剧终于发生了。某个店员不小心把店里的某两个价格牌给挂倒了。并且这两个价格牌的电视机都卖出去了!


    庆幸的是价格出入不大,其中一个价牌赔了2百多,另一个价牌却赚了8百多,综合起来,反而多赚了558元。


    请根据这些信息计算:赔钱的那个价牌正确的价格应该是多少?

直接采用暴力搜索

public class Main {
	public static void main(String[] args) {
		int x=0,y=0;
		int x1[]=new int[24];
		int x2[]=new int[24];
		int y1[]=new int[12];
		int y2[]=new int[12];
		int l[]={0,1,2,5,6,8,9};
		for(int a=1;a<7;a++){
			int a1=l[a];
			if(l[a]==6) a1=9;
			if(l[a]==9) a1=6;
			for(int b=0;b<7;b++){
				int b1=l[b];
				if(l[b]==6) b1=9;
				if(l[b]==9) b1=6;
				for(int c=0;c<7;c++){
					int c1=l[c];
					if(l[c]==6) c1=9;
					if(l[c]==9) c1=6;
					for(int d=1;d<7;d++){
						int d1=l[d];
						if(l[d]==6) d1=9;
						if(l[d]==9) d1=6;
						int k=l[a]*1000+l[b]*100+l[c]*10+l[d];
						int h=d1*1000+c1*100+b1*10+a1;
						if(k-h>200&&k-h<300){
							x1[x]=k-h;
							x2[x]=k;
							x++;
						}
						if(h-k>800&&h-k<900){
							y1[y]=h-k;
							y2[y]=k;
							y++;
						}
					}
				}
			}
		}
		for(int i=0;i<24;i++){
			for(int j=0;j<12;j++){
				if(y1[j]-x1[i]==558)
					System.out.println(x2[i]);
			}
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值