1/16颠倒的价牌~

如题:

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

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

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

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

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

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

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

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

在这里插入图片描述

上边那个汉字排版不知道怎么弄看着舒服,哎。

1.首先,我们想,你要是知道翻转过来之后是啥的话,那你得弄个函数吧,不然看着可不舒服,然后,就有了下面的overturn;

2.然后你要给他从1000到10000遍历一遍,看看哪个数的差是200多块钱或者八百多块钱的。。。

3.在翻转的时候,你会发现,最后一个数是0,⑧行,数里有3.4.7这三个数的⑧行。因为他们翻转过来不是数

4.在反转每个数的时候,我懒,于是有了change这个函数,在反转的时候,除了6.9是对翻,其他都不变。

5.返回数是A1000+B100+C10+D!!!!我写成了D1000+C100+B10+A;我说错在哪里我找不到!纠错接近一小时

6.之后的都很简单了,代码里介绍应该很清楚(自我感觉良好,小声bb)

#include <stdio.h>
int overturn(int x);//这是求出翻转过来的数是啥? 
int change(int y);//这是在求每个数,翻转过来之后是啥? 
int main()
{
	int first,end,x=0,y=0;//首数和翻数 
	int m1[100],m2[100],n1[100],n2[100];//赚或赔 
	for(first=1000;first<10000;first++)//遍历 
	{
		end = overturn(first);
		
		if(first - end>200&&first - end<300)//这就是赔的 
		{
			m1[x] = first;
			m2[x] = end;//把数记录下来,对比的时候好找出原数 
			x++; 
		}
		if(end - first>800&&end - first<900)//这是赚的 
		{
			n1[y] = end;
			n2[y] = first; 
			y++;//把数记录下来,对比的时候好找出原数 
		}
	}
	int i,j;
	
	for (i = 0;i<x;i++)
	{
		for(j = 0;j<y;j++)
		{
			if(((n1[j]-n2[j]) - (m1[i]-m2[i])) == 558)//这就到了,最最最最最重要的时候了 ,i和j顺序可不能错(指的是数组里) 
			{
				printf("%d\n",m1[i]);//ps:谁知道咋来的五个数! 
				
			}
		}
	}
	
}

int overturn(int x)
{
	int a,b,c,d;
	int A,B,C,D,end;

	a = x%10;
	b = x/10%10;
	c = x/100%10;
	d = x/1000%10;
	if(a==0||a==3||b==3||c==3||d==3||a==4||b==4||c==4||d==4||a==7||b==7||c==7||d==7)//自己动笔,丰衣足食! 
	{
		return -1;//当你动笔画了之后。你会发现3,4,7这三个数翻转过来不是数!而且,最后的那个数不能为0是必须的。 
	}
	A = change(a);//我懒,又弄了个函数,,,, 
	B = change(b);
	C = change(c);
	D = change(d);
	end = A*1000+B*100+C*10+D;//啊,我开始给弄得数是D*1000+C*100+B*10+A;然后还错了,我使劲找,找不到错误,花了半个多小时才纠错成功! 
	return end;
	
}
int change(int y)
{
	if(y==9) return 6;
	if(y==6) return 9;
	return y;//只有6和9翻转之后会变化,其他不变 
}

答案在最后,是9088
在这里插入图片描述
ps:刚刚的代码运行图片传错了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值