/*這種價牌有個特點,對一些數字,倒過來看也是合理的數字。如:1 2 5 68 9 0 都可以。這樣一來,如果牌子掛倒了,有可能完全變成了另一個價格,比如:1958 倒着掛就是:8561,差了幾千元啊!!
當然,多數情況不能倒讀,比如,1110 就不能倒過來,因爲0不能作爲開始數字。
有一天,悲劇終於發生了。某個店員不小心把店裏的某兩個價格牌給掛倒了。並且這兩個價格牌的電視機都賣出去了!
慶幸的是價格出入不大,其中一個價牌賠了2百多,另一個價牌卻賺了8百多,綜合起來,反而多賺了558元。
先找出差價在200到300的價格,沒找到一個就再去找差價在800到900的所有價格,兩個差價相減,若結果等於558,則得到所要結果。
*/
#include<iostream.h>
int num[7]={1,2,5,6,8,9,0};
int turn(int n)
{
if(n==6)return 9;
if(n==9) return 6;
return n;
}
void f(int price,int money)
{
for(int a1=0;a1<6;a1++)
for(int a2=0;a2<7;a2++)
for(int a3=0;a3<7;a3++)
for(int a4=0;a4<6;a4++)
{
int fsum1=num[a1]*1000+num[a2]*100+num[a3]*10+num[a4];
int fsum2=turn(num[a4])*1000+turn(num[a3])*100+turn(num[a2])*10+turn(num[a1]);
if((fsum2-fsum1)>800 && (fsum2-fsum1)<900)
{
if((fsum2-fsum1)-(price-money)==558)
cout<<price<<endl;
}
}
}
int main()
{
for(int a1=0;a1<6;a1++)
for(int a2=0;a2<7;a2++)
for(int a3=0;a3<7;a3++)
for(int a4=0;a4<6;a4++)
{
int sum1=num[a1]*1000+num[a2]*100+num[a3]*10+num[a4];
int sum2=turn(num[a4])*1000+turn(num[a3])*100+turn(num[a2])*10+turn(num[a1]);
if((sum1-sum2)>200 && (sum1-sum2)<300)
{
f(sum1,sum2);
// cout<<sum1<<"-"<<sum2<<"="<<sum1-sum2<<endl;
}
}
return 0;
}