蓝桥杯:颠倒的价牌

xiaoxiao2021-02-28  121

颠倒的价牌     小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。     其标价都是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]); } } } }

转载请注明原文地址: https://www.6miu.com/read-42678.html

最新回复(0)