|
AVG迷题探索(07)--静物(STILL LIFE)祖父的箱子,我的TURBO-C 解谜
好像有些小题大做,不过用我的脑袋实在是解不出答案。
) n5 T( o9 z4 Q5 P4 |( H: {1 _: _4 |2 u" q( d7 n
谜题:祖父的箱子 ( K2 g- m# P. w# O: c/ b; V- l
1 [$ H1 T% @% Y, U) \要求调到中间为红心 / b, k6 ]) m E' w" _
5 x9 H! V Y# d: A' T# f
两边为方块 $ G8 t- U1 _" P" A8 Z
: c M S1 X" ^6 M分析了一下,每动一个钮会有三个旋转,而且结果不唯一,想不出来,只好编程解题。 " \) v' |/ }3 O3 U/ m
8 I* \ ]. h3 h8 [0 H" m! j& l" f& g) a7 F9 L将每个按钮按下的情况做统计,画出一个矩阵。
8 R( k# ^8 t P- I
% Q0 k7 K- b5 M转1号 1 -1 1 0 0 ; E; H9 |: {* A: p) u t8 y. I
转2号 1 1 0 0 -1
% o3 Z. S% k) c: u4 `9 y转3号 0 -1 1 -1 0 * j7 ~ K5 k6 i2 r/ ~' v
转4号 -1 0 0 1 1 ) d9 x& s" b1 s0 g
转5号 0 0 -1 1 1 ; N8 e7 p; t( q' B
+ G- S. @6 H4 I: e- N0 j; @
其中,顺时针转为1,逆时针为-1。 s; g, N% f6 {! U
2 G: {: R2 ^% h0 t7 x/ a! k+ F设每个转子转动的次数为X1,X2,X3,X4,X5 \$ z$ |2 ]2 U8 @2 e: G2 A
! q4 s. _- R# T+ b, `/ J6 z
对可能的次数进行循环镶嵌迭代。 9 v7 L6 j' L2 G5 X! K; f
0 a; m- a. w8 Y4 g8 P
次数以4为循环,故0<=次数<=3 6 Q: I( e+ i9 V& r1 n
2 ~+ @: E: O) r: U- J; y E1 j
分析结果。考虑和差可能产生的结果以及4为周期的循环结果。
2 [* D; W. a6 x$ \# a1 ^( }2 N0 Y' b! A$ e
根据结果要求,对转子1,其结果可能为0或4。 $ x& i6 K# V/ t
$ O' c; ^7 S. U L$ x
对转子2,其结果可能为2或-2 ( Q8 z9 T6 e) ]1 _, G
6 o0 n, a/ K, Y @
对转子3,其结果可能为2或-2
: P t0 a" k7 `# @# j
( { L; S2 g! A( i8 p1 B& \) H' m2 }对转子4,其结果可能为1或-3或5 - j: ~( x" q1 U/ R. R
( ?/ E6 _* y8 h7 y& h
对转子5,其结果可能为3或-1 3 L( L$ G' ]' h3 Z' _" D* C
5 `4 t& N% Z6 d4 nTURBO C进行编程,程序如下 & g8 a+ a% O4 [& Z" ]& Y
#include <stdio.h> : T. O# s, d2 {& Q; Q
void main() 2 r; I" l8 t- X8 |4 e& h: I0 J: I
{
& K) {1 R5 E! i Q! q int x1,x2,x3,x4,x5; ( q: R* [; T9 O
int a,b,c,d,e;
1 q/ f% o0 t! ^4 l for(x1=0;x1<=3;x1++) ' L' @! n7 U( x( \
for(x2=0;x2<=3;x2++)
% Q% L$ h$ P$ j* a8 s" D7 T# W: T5 E for(x3=0;x3<=3;x3++) % N/ f& V" y, @8 Q. O+ C( ~( c
for(x4=0;x4<=3;x4++) , o1 t1 M$ N5 q
for(x5=0;x5<=3;x5++)
% K4 L& R7 p9 f9 ]8 H { " K# [8 c$ R7 o! {4 O- o
a=x1+x2-x4;
; Y5 |) ]$ U3 a1 _ s0 T b=x2-x1-x3;
+ c I/ R2 d; q( z7 w9 p7 X0 Q6 o c=x1+x3-x5; * {% d0 \4 c6 G1 L
d=x4+x5-x3; , j' o" [ h$ j' y# _; F
e=x4+x5-x2; - L8 O7 s+ U4 o* F& r+ x$ [2 t
if(a==0||a==4)
* { ]* n5 o$ _* r6 g* e) N9 J( X( V {
) n3 K, L# r) U4 g if(b==2||b==-2)
6 t( S% |1 S% b8 F. J1 _: ~9 v. Z {
. H2 x1 q4 Y% [8 k. f/ D: w if((c==2||c==-2)||c==6) + A) \) K& z9 Y" l- Q
{
4 n1 J: O% k2 i+ z& ]/ E& T if((d==1||d==-3)||d==5)
/ s( ]9 g$ P& l { + @0 p0 B" `7 y1 n
if(e==-1||e==3)
9 W7 \3 y( F: f. p5 g$ h printf("x1=%d,x2=%d,x3=%d,x4=%d,x5=%d\n",x1,x2,x3,x4,x5);
% @% O8 r8 ^+ K8 I- i7 g break;
( k. M# z1 R F# z( C }
' Y7 a* E# q+ M( g x/ s6 s# h
}
9 V$ k0 E( |+ p: i% O6 V+ T- L( b: @4 o3 {
}
" W+ P# G9 m3 Q5 {1 M6 g- f4 z( B" n0 v5 v- [/ s% ~% h: ]
} 5 a# L. O% I& G: I- n9 R
; [& @. W+ n6 K! ?
} ; U% G& Y3 H6 n9 Z
} 7 t& a0 f' ?, x- s. N' m
$ j: V Q! M+ n3 G) ~4 z
编译,调试,结果为X1=0;X2=3;X3=1;X4=3;X5=3 |
|