1/16 etiqueta de precio al revés ~

Como el título:


La tienda de X Xiaoli vende exclusivamente televisores de muestra en los estantes de otras tiendas, que se pueden llamar tienda de televisores de muestra.

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

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

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

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

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

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

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

Inserte la descripción de la imagen aquí

No sé cómo hacer que la composición tipográfica china se vea cómoda, eh.

1. Primero que nada, pensamos, si sabes lo que es después de darle la vuelta, entonces tienes que hacer una función, de lo contrario parece incómodo, y luego habrá el siguiente vuelco;

2. Luego tienes que atravesarlo de 1,000 a 10,000 para ver qué número es más de 200 yuanes o más de 800 yuanes. . .

3. Al voltear, encontrará que el último número es 0, línea ⑧, hay tres números en la línea ⑧ de 3.4.7. Porque no estan contando

4. Al invertir cada número, soy vago, por lo que hay una función de cambio. Al invertir, a excepción de 6.9 que es un inverso, todo lo demás permanece igual.

5. ¡El número devuelto es A 1000 + B 100 + C 10 + D! ! ! ! Escribí D 1000 + C 100 + B 10 + A; ¡no encuentro dónde dije algo incorrecto! Corrección de errores durante casi una hora

6. El resto es muy simple, la introducción en el código debe ser muy clara (siéntete bien, susurro 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翻转之后会变化,其他不变 
}

La respuesta está al final, 9088
Inserte la descripción de la imagen aquí
ps: la imagen del código que se está ejecutando ahora es incorrecta.

Supongo que te gusta

Origin blog.csdn.net/FG_future/article/details/112723790
Recomendado
Clasificación