You are on page 1of 79

94 ()

....
( ' )

version 0.1
2014



. ,
.
.

. .

.
.

.
,
, ,
. .
.
. ( )
(
) .
. ,
. . ,
.
.
, . .
, ,
.
.
. '
, .
.
.
, .
.
,
( ).
. .
.
project Euler dzone.com
Thursday code puzzler.
.
, .

, ( ).
, .
, ,
( ).

.
. (
).

.
. 1/3 '
. 1/3 ,
. , 1/3 .
,
, . 1/3 '
. .
.
. .
(
). .

, ,
,
, .
17
. ,
,
.
.
, .
,
.
.
. , ,
. .
, , .
, , , ,
:
apoldem@gmail.com


............................................................................................... 1
1 - ............................................................................................................1
2.....................................................................................................................................1
3 - ...........................................................................................................1
4 - ........................................................................................2
5 - .............................................................................................2
6 - 100.......................................................................................3

.................................................................................................... 3

7 - ..................................................................................................................3
8 - /.....................................................................................................4
9 - ................................................................................4
10 - (1).........................................................................5
11 - (2).........................................................................6
12 - ...........................................................................................7
13 - & ..................................................................................7
14 - ...........................................................................8
15 - ....................................................................................................8
16 - .....................................................................................................9
17 - .......................................................................................................9
18 - 2................................................................................9
19 - ....................................................................................................10

............................................................................................ 10
20 - ................................................................................................................10
21 - / .......................................................................11
22 - ....................................................11
23 - Collatz............................................................................................11
24 - Fibonacci............................................................................................13
25 - .................................................................................14
26 - Horner.......................................................................................................15
27 - ( _)............................................16
28 - ................................................................................................17
29 - .............................................................................................17
30 - / .................................................................18
31 - .............................................................18
32 - ................................................................................19
33 - _............................................................................19
34 - ...................................................................................................20
35 - ( ).............................................................21
* 36 - .............................................................................21
37 - .......................................................................23

............................................................................................................. 24
38 - ............................................................................................24
39 - ...........................................................24
40 - ......................................................................24
41 - .............................................................................................25
42 - .......................................................................................25
43 - ..............................................................................................26
44 - ...........................................................................................26
45 - .....................................................27
46 - / ......................................................................28
47 - ( )..........................................................28
48 - .............................................................29

49 - ......................................................................................30
50 - ..........................................................................................31
51 - ...........................................................................................................32
52 - /........................................................................................32

( ) .............................................................33
53.................................................................................................................................33
54 - ...........................................................34
55 - ............................................................................34
56 - ......................................................................................................34
57 - ....................................................................................35
58 - ................................................................................................35
59 - .............................................................................36
60 - ( ).................................36

........................................................................................... 36
61 - ( )..........................................................36
62 - ' ...........................................37
63 - .....................................................................38
64 - ...............................................................................................39
65 - ( )................................................................41
66 - ................................................................43
67 - .........................................................................................................44
68 - ..........................................................................................45
69 - 24 12.......................................................................................46
70 - ............................................................................................47
71 - 1 n...........................................................................47
72 - .............................................................................48
73 - ( )......................................................49

- .................................................................................. 50
74 - ........................................................................50
75.................................................................................................................................51
76 - 3 .......................................................................................52
77 - .....................................................................52
78 - - ....................................53
* 79 - - .........................53
80 - ;.......................................................................................................54
81 - ( )..............................56
82 - ...................................................................57
83 - ' ( )...............58
84 - .............................................................................59
** 85 - - ( ).............................................60
86 - ...........................................................................................64
87 - .......................................................................................64
* 88 - ( )........................................................65
89 - ........................................................................................66
90 - -..................................................................................................................67
* 91 - -........................................................................................68
92 - .........................................................................69
93 - ...................................................................69
94 - ................................................................................................70


1 -


" "

< 0

(-1)*

" : ",

. 35
20 .
20% .
11%
.

,
.


// , //
!
35 + *20
+
!
* 0.2
-
* 0.11
!
- -
" : ",
" : ", +
" : ",

3 -

,
. .
.


" 1 () "

" 2 () "



!
!
!

" = ",
" = ",

4 -


. 3
.
( ) .
: 125.25 41, 56.23
18, 2.5 0.


" ? "

_ _()
_ div 3
! _() div 3

" ",

5 -


,
,
. 20%
5% .
: 56, 12 9
, : = 772,8 , =
38,64 , = 734,16


" ? "

" ? "

" () ; "

( + *0.2) *
! * + *0.2* (**)

0.05*
-
" : ",
" : ",
" : ",

6 - 100


. :
15732 15700 , 15784 15800 ,
60 100 , 530 500 , 17 0.

100
" : "

+ 50
/ 100
_()
*100

!
!
!
!

50
2


! _( ( + 50)/100 ) * 100 !


7 -

.
,


" () : "

" x () : "

" () : "

^2 -4**

= 0
" "
_ < 0
" "

"1 = ", (- + _()) / (2*)


"2 = ", (- - _()) / (2*)
_

8 - /


. ()
. ,
.

!
! ..

' ..

" 1 : "


!
" 2 : "

<
! '
" 3 : "

<
! '
" ",

9 -


.
.
:

.
,
20 .


20 .

,
5 .

, ,
, 1 .
,
.
.


.
4



" (/): "

= ''
! ''
" (/): "

= ''
0
0

5
5
_
20
_
20

1
1
_
" ", , " "
" ", , " "

.

.

.

, (
14 ).

( 66).
.

10 - (1)


.


.

_
" 1 : "

" 2 : "

mod 2 = 0
mod 2 = 0

" "

" "
_

mod 2 = 0
" "

" "
_
_

.


" 1 : "

" 2 : "

__1
__2

mod 2 = 0
mod 2 = 0

__1 __2
" "
_ __1 __2
" "

" "
_

11 - (2)


2_2006
x
x mod 2 = 0
y x div 2
y 10
y 2*x + y
_

y x^2
_
y


. ( 2006)

2_2006
x
x x mod 2 = 0
x x 20
y x div 2 + 2*x

! , - 20

_ x
y x div 2

y x^2
_
y

-_

! , 20
! ,


! ( ).
_ .
_ .
x
x20 x . ,
20.
,
( 33).
x , .
,
( 45).
12 -

,
x+ =0 .

.


" x : "

" : "

= 0 = 0
" ( x )"
_ = 0 0
" ( )"

" : ", -/
_

13 - &

(..)
() ,
. ,
1% ,
1 3,
.
.

" : "

* 0.01
< 1
1
_ > 3
3
_
" : ",

14 -

:
20 600 .
600 0.20 5
( ).
23%.
(
) .


" () : "

20

> 60
- 600
div 5
! , ..
! ..
mod 5 0 + 1

!
! 5
! 5

+ * 0.2
_
* 1.23 !
" : ",

15 -


, 2.5% ,
118.

.


" : "

* 0.025
> 118 118
-
" : ",

16 -


50 10 25 . ,
10 ,
30 .

. .

:
:

" : "
_

<= 0
" : "
_
_ > 0
<= 10
<- 50 + ( - 1)*25

<- 30*
_
" : ",
_

17 -

,
.


// , , //
< + < + < +

.
.
18 - 2

,
, . 83 38.


// //
< 100 > 9
( mod 10)*10 + div 10
_

mod 10
( ) div 10
. 10
(10, 100, 1000, ...)
.
19 -

1 3 .


.
.

1 = 3
! 3 /

: ,

" ;"

<- div 1
mod 1 > 0
! , ..
<- + 1
! ..
_
" ", , " "
_


20 -


0. .


0
_

+

10

_ 0
" : ",

.
(sentinel value)
.
21 - /


.
.
.
.

_
!
= 0
" "
!


0
<
>

_
" : ",
" : ",
_

22 -


,
div mod .
(, , , ) ,

.

827
.
...

7
118

(, , , )

: , , ,

0
!

!
> !
-
+ 1
!
_
_

11

23 - Collatz

Collatz
.
.
(i) .
(ii) 3 1.
:

fn
f ( n+1)=
2
3 f n +1

f n
f n


1.
7, () 7
37+1=22 , () 22 22 /2=11 , () 11
311+1=34 ...
1.

1

.

Collatz .
, :
()
.
() Collatz
.
() 1. 1
!
;
() ;
;

Collatz

: ,

!()
" : "
_

<= 0
" , : "
_
_ > 0
! Collatz
<- 0

12

> 1 ! ()
mod 2 = 0
<- div 2

<- * 3 + 1
_
<- + 1
" : ", , " -> ",
_
_

() . .

1 ( ).
.

1.

.
() . ,
, .
, , !

(~10 19)
. ,
.
,
.

.
(.. 1000) .

Collatz

: ,
:
:

...
<- 0
<-
> 1
...
" : ", , " -> ",
mod 1000 = 0
! 1000
" ? (/) "

<- = ''
_
_
_

13

24 - Fibonacci

Fibonacci .

. F (n1) F (n2)
F (n1) + F (n2 ) .
: F n=F n1+ F n2

2

3
.
1 1
F 0=0
8
F 1=1 . 0, 1, 1,
5
2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...
()
Fibonacci.
Fibonacci.
Fibonacci. : (11) = 89 ,
(12) = 144

() Fibonacci,
n

(1+ 5) (1 5)
: F n=
.
2n 5
Fibonacci
;
;

()
():

: , , ,

<- 1
! ( 2 )
<- 1
! ( 1 )
3
! 3. 2
<- +
! =
<-
! =
_
<-
_

()
.
.
, .
25 -



300..
. ,
.
14

(i) , ,
( ,0)=
(ii) ( ) ,

, ( , )= ( , mod )
,

, (
). (
). 18 48:
(48, 18) = (18,12) = (12, 6) = (6, 0) = 6

.
,
.
, .

(, ):

: , ,

<
(, )
_

! ..
! ..,

!
> 0
<- mod
<-
<-
_
<-
_
(, )

: , ,

<-
<-
<-
_

26 - Horner

Horner
. 1819
William Horner .
70 ,
.

, .

15

a k x k =a0 + x( a1 + x ( a2 +... x ( an1 + xa n)))


=0

x .
-.

.

( ; ;)

.
. , n-
, .
, .
.
Horner

: ,
: , ,

" : "

" : "

<- 0
!
0 _ -1
" ", , " : "

<- * +
!
_
" : ",
_

27 - ( _)

():

. ,
.

( )
10. div 10
, .
.

. ,

. ,
div 10 , .

16

():

: ,

<- _()
! <0
<- 1
! 1, ..
<- div 10
! .. =0
!
<> 0
<- + 1
<- div 10
_
<-
_


- .
,
_ . ,
.
():

: ,

<- _()
! <0
0
H_
<- div 10
!
+ 1
E_ =0
<-
_

28 -


.
4356 18.



0
> 0
mod 10
div 10
+
_

!
!

29 -


.
31 13, 2378 8732 78789
17

98787.
.

() 27.

: , , ,
:


<- ()
<- 0
!
1
<- mod 10
! ..
<- div 10
! ..
<- + * 10^( - ) !
_
_() !
_

30 - /

10
'
' 3.

: , i, ,

<- 0
<- 1
i 1 10
!
_

_ > 0
!
mod 2 = 0
<- +
_
mod 3 = 0
<- *
_
_
,
_

! , 0
! 1

31 -


.
* , / , + , ^ .

.
18

:
.

.
.
.
,
.
0
1 _()
1 _()
- 1
_
_
_()

32 -

():
. n !
n !=123...n . 1 ( 0 !=1 ).

. -1, .
(6) = 720 , (10) = 3628800 , (13) =
6227020800 , (-3) = -1
, 20.
.

():

: , ,

<- -1
! , -1
>= 0
<- 1
1
<- *
_
<-
_
_

33 - _

, < , 10
,
( ).

_
.
. _
.
19

_
, .

: i, , ,
: 1, 2, 3 !

!
1 <- 0
2 <- 0
3 <- 0
!
_


_ <
!
i 1 10

<
1 <- 1 + 1
_ <= ! >= ( )
2 <- 2 + 1
! > ( )
3 <- 3 + 1
_
_
1, 2, 3
_

34 -

(): ,

. ,
, 1.

1
. .
2
.
.
,
= . ,

( ).
():

: ,
:

<-

20

<- 2
! 2
<
! <= _() !
<- mod = 0
<- + 1
_
<-
_

35 - ( )


1
.

,
2 . , ()
()
.
, .
.

, .

" 1"

< 2 _()
"** "
" , 1"
" ..."

_
! 1
!
2
<= _()
mod = 0

div
_
+ 1
_

!
!


. .
;
* 36 -

3 ..


2 .

21

, , .
. 1
:
. .
.
.
.
( =10000)
1 .
. 0 .
0
.
0 ( 0
). ,
;
**
.
.
2000
. 1719 Euler
. Euler
,
.
Euler.

2000 . Euler
.
.
;

= 100

: [], ,

!
1
[] <-
_
! 1
[1] <- 0
! 0 ,
!
2
!
[] <> 0
!
!
! ...
! .. 2, 3,...( div ), ...

22

! ..
2 ( div )
!
! ( div )
! Euler
[*] <- 0
!
_
_
_
!
1
[] <> 0
[]
_
_

!
!

, .
.
. (hard-coded)
.
37 -


.
56 2, 2, 2, 7
57 3, 19.

700 2
. 2 350 2
. , 175 5
35 5
7 7
.
0
, .
.

. '
.
,
( )
(
).


2
!
> 1
mod = 0

!
div

+ 1
_

23

38 -

[,]
.
.

0
1
+ [, ]
_

39 -

()
[] .
, ,
.

,
. [] '
, [+1] .
1 div 2
[], [+1 - ]
_

40 -


[,] .
.

,
i,j
,
, .

. ,
j,i
. , ,
,
.

.
' .
24

1
+1
[,], [,]
_
_

, ,
,

( ).
.
,
, .
,
( , )
41 -


[] [] .

1
[+1 - ] []
_

42 -

[] .

.
[2.5, 3.2, 4.7, 1.1, 7.8] , 3.86
40% (2
5 ).


.
!
0
1
+ []
_
/
!
0
1
[] >
+ 1
_
_
! %
100 * /


100.
25

43 -

[] , -
( )
.
.
,
, , .


1
<= div 2
[] [+1 - ] ! []=[+1-]
+ 1
_
! []

(flag).
.
(on) (off)
. , .
** .
'
, .
. , '
(
, !).
.

.
,
.
. 88 .

.
.

( ).
, ,
( ).
44 -


[] [] [] . [] []
. []
. []

.
=[,,] , =[,,] =[,,,,,]
26

=[,] , =[,,]

=[,,,,]

! []
1
[] []
_
!
1
[ + ] []
_

45 -

[] .

.
. [4,8,6,1,2,9,4]
1, 1 2 .
.


7
[1] 4
[2] 8
[3] 6
[4] 1
[5] 2
[6] 9
[7] 4
_([1] - [2])
!
2 -1
!
_([] - [+1])
<
_

,
...
2 -1
_([] - [+1]) <
_([] [+1])
_
_
...

,
, .
. .
,
, .

.

27

.
, .
46 - /

,
.
[4,8,6,1,2,9,4]
0, 4 4 .

.
,
...
1
1
! (, )
_
_


, .
40,
'
.

7
[1] 4
[2] 8
[3] 6
[4] 1
[5] 2
[6] 9
[7] 4
_([1] - [2])
1 - 1
+ 1
_([] - [])
<
_
_

47 - ( )


[] .
.
( ) ,
.


.
28

!
[1] > [2]
[1], " 1 "
_
!
2 - 1
[] > [ - 1] [] > [ + 1]
[], " ", , " "
_
_
!
[] > [ - 1]
[], " ", , " "
_

.
.
.
48 -

20
.

( ).
()
() ; (
)

() ,
.
( ).
.

: ,
: ,
: ,

<- 0
!
1 20
" : "

" : "

>
<-
<-
<-
_
_
" : ",
" : ",
_

29

() .

.
. , ,
.

: ,
: [20],
: [20],

<- 0 !
1 20
" : "
[]
" : "
[]
[] >
<- []
!
_
_
! ( )
" ( )"
1 20
[] =
[], " ",
_
_
_



(instantaneous) on-line. /
.
,
.
( )
.
( - off-line).
off-line (
)
49 -


. ,
.
:
()
() 2 3
()
()
30

() .
() ( )
() .
() .
() ' .
() 100
() (
)


;

() . ,
' .
() .
.
() . ,
. 2 ,
.
, .
() . .
,
.
() .
, .
() .
.
() .
.
.
() .
( ,
)
() .
() .
.
() .
( 87)
50 -


[,] ,

.

[*] ,
.
31

...
M

- ,
.
;


" "

" "

!
1
1
[, ]
_
_
!
1
! ..
1
! .. (-1)* ..
[( - 1)* + ] [, ] ! .. ..
_
! ..
_
!
1 *
[], " "
_

51 -

, [] [] , ,
.
, . =[,]
=3 , =[,,,,,] ,
=[,,] =2 =[,,,,,] .


3
[1] ''
[2] ''
[3] ''
2
1
1
1
[] []
+ 1
_
_

!
!
!
! ,

32

52 - /

[] ,
.
.
, ... ,
. =[,,,]
=[,,,] .
;

.

.

4
[1] ''
[2] ''
[3] ''
[4] ''
[]
2 _ -1
[] [ - 1]
_
[1]

!
!
!
!

1
[], " "
_


,
( [] [+1] - 1 -1 )
.

( )
53

.
:
: !
:
!
: !


.
( )
) 5.000

33

) 10.000
100 .

,
.

( > 5000) ...


... ( > 10000 12** > 10^8)

54 -

( Excel),
,
( ).

.

, .
32,451 32,45, 2312,017 2312,02
0,996 1,00.

:
(i)
2 ( 100)
(ii)
0,5
(iii) ( _() )
(iv) ( 100)


_( (*100) + 0.5 ) / 100

55 -

, , .
, == .
;

= =

56 -

.
.
.
,
.

, .
.

( ) ..
..( )

34

1:
(
).
.
2: ,
( ) ..
.. ( )

.
. (
), .
.
57 -

.
,
. 24 ,
0 23. 8
21, .

, .

. 8
21, .
( >= 8 <= 21)

1: , .
2: ,
.
.
3:
, .
.
. .
, ,
. , ,
.
58 -


.
.
,
.
,
, .

-, ,
.
35

( ) ..
..( )

,
.
59 -


; 4, 9, 16, 25, 36, ...
.


_() = _(_())

60 - ( )


. [3] .
,
.
.
- 1901 - 2099.
.
1901 2099,
4 ( ).

(
) .
[1]
[2]
[3]
[1] 31
[2] 28
[3] 31
[4] 30
[5] 31
[6] 30
[7] 31
[8] 31
[9] 30
[10] 31
[11] 30
[12] 31

!
!
!
!

>1900 < 2100 > 0 < 13 > 0


(<=[] (=2 =29 div 4=0))

36

61 - ( )

,
,
.
.

. 500, 200, 100, 50, 20, 10, 5,
2, 1. :
105 1 100 1 5
524 1 500 1 20 2 2
887 1 500 1 200 1 100 1 50 1 20
1 10 1 5 1 2
: div mod


" ( )"

!
[1] 500
[2] 200
[3] 100
[4] 50
[5] 20
[6] 10
[7] 5
[8] 2
[9] 1
i 1 9
!
div [i]
! 0
> 0
, " ", [i]
mod [i] !
_
_


.
:
i 0
i < 10 > 0
i i + 1
div [i]
> 0
, " ", [i]
mod [i]
_
_

37

62 - '

: 2, 5, 7, 8,
10, 12, ...( )..., 100.

, .


1 100
= 2 = 5 = 7 ( 8 mod 2 = 0)

_
_

1 5 . :

2
5
7
8 100 _ 2

_

63 -

30 ,
. 30
0,02 0,03
.

.


.
.
():

:
:

! , 30*0.02=0.6
<- 0.6 ! 30*0.02
> 30 ! ,
<- + ( - 30)*0.05
_
<-
_


. '

<= 30
<- 0.6 ! 30*0.02

38

<- 0.6 + ( - 30)*0.05


_

, ,
. ,
. ( 65 )

.
.
0.1*0.1*100 ,
,
. ,
.

. . ,
, , ,
.
64 -

,
. 20 . 60
0.02 . 61
3 (180 ) 0.05
3 (181 )
0.07 .

.

1

_ (
).
.
():

:
:

!
<= 20
<- 0.4 ! 20*0.02
! 1
_ <= 60
<- *0.02
! 2
_ <= 180
! <- 60*0.02 + ( - 60)*0.05
<- *0.05 - 1.8 !

39

! 3

! <- 60*0.02 + (180 - 60)*0.05 + ( - 180)*0.07


<- 0.07* - 5.4 !
_
<-
_

* 2
,
.

_ .
.
.
( ).
.

.

. ,
, , .
2():

:
:

!
< 20
<- 20
_
! 1
>
< <
< <_
! 2
>
< <
< <_
! 3
>
< <_

60
1.2 ! 60*0.02 !
60
!
*0.02
0

!
!

120
! ,
+ 6 ! 120*0.05
- 120
+ *0.05
0
()
0
!
+ *0.07
0

40

<-
_


. .

. . ,
.
.
!
3():

:
: , , [3, 2]

! . .
! ,
[1, 1] <- 60
! 1
[1, 2] <- 0.02
[2, 1] <- 120
[2, 2] <- 0.05

! 2

[3, 1] <- 100000000 !


[3, 2] <- 0.07
!
< 20
<- 20
_
<- 0
<- 1
> 0
> [, 1]
<- + [, 1]*[, 2]
<- - [, 1]

<- + *[, 2]
<- 0
_
<- + 1
_

!
!
!
!
!

<-
_

.
.
[] .
[]
, .
65 - ( )


:
(i)
4%
41

(ii)
8%
(iii) 20%

(1, 2 3 )
.

.
1
" (1 , 2 , 3 )"

" "

= 1
* 0.04
_ = 2
* 0.06
_ = 3
* 0.2
_
" :",

.
.
:
...

= 1
0.04
_ = 2
0.06
_ = 3
0.2
_
* ...

.

.
.

. .
.
.

.
2
" (1 , 2 , 3 ): "

" : "

[1] 0.04
[2] 0.06

42

[3] 0.2
* []
" :",

66 -


:
(PIN) 3 ,
. ,
500 .
() PIN
()
() PIN

() ,
,

,
.

.

.
.
()
__(, )

:
:

!
! ,


_

()
(, )

: , ,
:

<- 0
!
<- !
< 3
<- + 1
" PIN ( ", , " 3)"

=
<- ! : <- =
_
_

43

! ..
! .. ,

" "
_
_

()
()

: ,

" "

<=
" . : ", -

" . ."
_
_

:
:
:

__(, )
(, )

()
_
_

67 -

()
. 1 2 3 4 5 6 7 8 9 , Ai i-
.
1)
=A1256+ A2128+ A364+ A432+ A516+ A68+ A74+ A82 .
( ).
2) 11.
3) 10, 9 .
, 9 .
, () , -
( )
.

(.. , 9- )

( )
2, 1 8.
44

. 2 3
. 11
10.
.
,

.
():

: , , , ,

<- mod 10
<- div 10
<- 0
1 8
<- mod 10
<- + * (2, )
<- div 10
_
<- ( mod 11) mod 10 =
_
(, ):

: , , ,

<- 1
1
<- *
_
<-
_

68 -


().
125434521 3773 .
() 1(x)

.
.
.
* () 2(x)
,
( )

()
1():

:
:

45

<- mod 10 = div 1000 !



!
<- mod 1000
!
<- div 10
!
<- mod 10 = div 10 !
_
1 <-
_
() () 27

(, ) 67.
2():

: , , ,
:

<- ()
<-
> 0
!
<- div (10, -1)
<- mod 10
<- =
!
<- mod (10, -1) !
<- div 10
!
<- - 2
! 2
_
2 <-
_

69 - 24 12

24
, , 1452.
.
.
12 , 2:52.

.
.
12
12. . 12:00,
12:00 00:00.
12
" "

div 100
!
mod 100 !
< 0 > 23 > 59 !
" "
_ = 12
! 12:00
"12:", ,

46

mod 12, ":", ,


_
!
< 12

70 -

100
.

100 .
20
( 100 ).

.


0
0 !
1 20
" "

+ 100 !
+ !

!
+ 1
!
" , : ",

! ..
_
! ..
_
> 0
+ 1
_

" : ",

71 - 1 n


n
1 n , 12 +2 2+ ...+ n2 .
.

n

i 2= 16 n(n+1)( 2n+1) .
i=1

47


1
n
0
i 1 n
+ i^2
_
" : ",


2
n
" : ", n*(n + 1)*(2*n + 1)/6.0


.
n .
72 -



.


.
10 19 (~264).
, .
( )
( ).
.
, (
). -

.

, -.
[4] [4] . ,

[5] (
n- n+1 ).
:
,
.
10, .
.

48

,
.
(

' ).

: [4], [4], [5], , ,

1
()
2
()
<- 0
4 1 _ -1
<- [] + [] +
<- div 10
[ + 1] <- mod 10
_
[1] <-

!
!
!
! 1
! ..
! ..

[1], [2], [3], [4], [5]


_
() ! 4

: [4],

1 4
" ", , " "
[]
_
_

73 - ( )

N
-,
.
. ( ' '
).
:
()
.
()
.
(
, ).
.

49

()
, .
( ),
1
1
!
1 -1 !
[] = ' '
!
+ 1
_
_

()
(skip over process).

, .
-
,
!
[] = ' '
+ 1
_


. ,
.

-- .
( )

1
1 -1
[] = ' '
+ 1
+ 1
[] = ' '
+ 1
_
_
_

!
!
!
!

PASCAL ,
-- (
),
1
0
< -2
+ 1
[] = ' '
+ 1
+ 1
[] = ' ' !
+ 1
_
_
_

50

-
74 -


3 1000.


.

1 1000
mod 3 = 0
_

1000 .
. 3 .
*3 , 1000.
1
*3 < 1000
*3
+ 1
_

3.

75

5 3 10
3, 5, 6, 9. 23.
3 5 1000.

3 5.
3
5.
3
0
! 3
1
*3 < 1000
+ *3
+ 1
_
! 5
1
*5 < 1000
*5 mod 3 0 + *5
+ 1
_

:
.
, :
51

! 5
1
5
< 1000
mod 3 0 +
+ 1
*5
_

76 - 3

.
, , .
,
' .

.
. .
bubblesort
3



> , ! 2
> , ! 2
! 3
! 2
> , ! 2
, ,

77 -

5 , 60 ,
, .
30 . [60,30]
60
[60] 60 .
, []
[] ,
.

[] -.
.

// [60, 30], [60] //
" : "

52

0
0

< 60
+ 1
< 30
+ 1
[, ] =


_
_
_
" : ", []

78 - -

[N] , ,
1 N ().
,
.
.
.
.


.

6
[1] 4
[2] 2
[3] 1
[4] 5
[5] 3
[6] 6
!
1
2
1
[] mod 2 = 1
[]
+ 2

[]
+ 2
_
_
1
[], " "
_

53

!
!

* 79 - -

, .
1
, .
, .
, .
: , , .

, , .
.
.
.
.
-
.
, [] . /2
.
2
6
[1] 4
[2] 3
[3] 1
[4] 5
[5] 2
[6] 6
1
! ..
1
! ..
1 div 2
! '
! ( )
< [] mod 2 = 0
+ 1
_
! ( )
< [] mod 2 = 1
+ 1
_
[] []
[] []
+ 1
+ 1
_

!
! ..
! .. ..
! ..

1
[], " "
_

54

80 - ;

[] ,
.
(
).
.
=['3','2','5','4'] = .

( ).
ASCII.
.

ASCII.

ASCII.
'0' '9'
, '' '' ,
'' ''
. ,

.
, ''<'' , '1'<'5' .
ASCII
'0''9' .
. ''''
'''' .




4
[1] '2'
[2] '4'
[3] '1'
[4] '0'

0
<
+ 1
[] '0' [] '9' ! ...
_

,
.
73.

...

55

1
[] '0' [] '9' ! ..
+ 1
! ..
_
= +1
...

; ,
(,
). ,
. , .
81.
81 - ( )

[] []
. ,
. ,
( ).
()
.
* ()
;

() - .


5
[1] ''
[2] ''
[3] ''
[4] ''
[5] ''
3
[1] ''
[2] ''
[3] ''
1
!

1
!

[] = [] ! : [] = []
+ 1
_
[]
_


.

. , .
1 .

56

. ,
( )
...
1
1
[] []
+ 1
_
< + 1 []
_
...

!
!
!
! ..
! ..,

* () ,
. [] [] ,
.
. ,
'
.
, .
, .
2
5
[1] ''
[2] ''
[3] ''
[4] ''
[5] ''
3
[1] ''
[2] ''
[3] ''
1
!
1
!
[] > [] !
+ 1
_
!
!
< + 1 [] = []
!
[]
_
!
_




..
.. -
, ..
..,

82 -

43,
.
.

,
. .
, .
, '

57

,
.
div 2
1
[] = [+1 ]
+ 1
_
= + 1

83 - ' ( )

.
.
()
.
.
, 1 ,
.
()
,
.
() .
* ()
.
,
.
, ,
.

()
. , .

// //
1
()
+ 1
_
// //

() ,
. 1
( )

// //

()
- 1
_
// +1 //

58

* () .
.
, .
.
. ,
.
,
. ,
, .
, .
, ,
.
, ,
.
.
,
.
. ,

. , .
!

// //

1
> +1
!
( + ) div 2 !
()

!


!
_
_

0
()


_
// //

84 -

[N]
.
. 2
( )
59


,
.
(
_ ).

.
.
.
[1] >

[2]
[1]
[2]
[1] < [2]
[2]
[1]
[1]
[1]

3
[] >

[]
_ [] >
[]
_
_

!
!
!
!

'


,
.

( )
.
.
.
.
'
.
** 85 - - ( )

[] . .
- .
-
( ,
). =10
=5 .


. .
60


5 .
.
,
.
.
.
!
()

: [5],

1 5
[] <- 0
_
_


. .
(
).
(
). .
!
(, )

= 5

: [], , ,

! 1 -
<- 0
< > [+1]
<- + 1
_

! 2
> 0
!
2
[ - 1] <- []
_
! 3 -
[] <-
_
_


.
5 ,
.
.
_

: [5], [10],

61

1 10
[]
_
()
!
1 10
(, [])
_
5 : , [1]
_
< >[+1]

. < ,
,
. < ,
>[+1] .
.
.
(short-circuit
evaluation).
(
).
.
.
:
.

. ,
. (
.

.)

. ( )

. < >[+1]
= .

. , ,
.
.

62

.
BASIC PASCAL (
70) ,

. ,
.
, .


.
.
.
BASIC PASCAL
.
80
,
C ( C
). Microsoft (
GWBasic quickBasic) Borland ( Turbo
Pascal)
.
. 90 Borland
,
, PASCAL. Microsoft
( Visual Basic) 2002.
.NET (andAlso , orElse )
.

. ,
80 90, ( C
Java ).

. , .
' .

.
:
() .
GOTO, .
(
).

.

63

()
,
.
:
(i)
( ) ,

<
> [+1]
<- + 1
_
_

.
, (
).
(ii)
.
,
< -1 > [+1] ! -1
<- + 1
_
> []
!
<- + 1
_

86 -

[]

,
.
( 73),
.

1
< [] < [+1] !
+ 1
_
=
! ,

87 -

[]
1 100.
.

.

1 100.
1 , 2,....
64

,
.
, 100 .
! []
! [100] ..
! ..
1 100 ! []
[] 0
_
!
1
[[]] [[]] + 1
_
!
1
1 100
1 []
[]
+ 1
_
_

! =
! []
! ,


.
!
.
* 88 - ( )

[]
1 .
(
).

.

.
.
bublesort,
.
!
(
)
, .
,
( 40 46).

" "

!
1

65

[]
_
!

! ,
1
+1
[] = [] ! (**) []=[]
_
_


.
--
.
!

1
<
+ 1

[] = [] !: [] = []
+ 1
_
+ 1
_

.

1 . .
[] ,
. 1
. 2
. ,
- .
!
1
[] 0
_
!

0
<
+ 1
[[]] = 0
[[]] 1


_
_

66

). ,
.
89 -

[]
1 100.
( , )
( ).

.
.
.

5
[1] 2
[2] 5
[3] 2
[4] 5
[5] 1
!
1
[] 0
_
!
1
[[]] [[]] + 1
_
!
[1]
2
[] > []
_
!
1
[] =
" ", , " ", , " "
_
_

90 - -

[] ,
.
,
'' . 2
. .
=[,,,] = , =[,,,]
= .
, =[,,] = .

67

.

4
[1] ''
[2] ''
[3] ''
[4] ''
0

<
+ 1
[] = '' [+1] = ''
_


.
.
(
) . ,
,

1
< ([] '' [+1] '')
+ 1
_
<

.
. '
.
* 91 - -

,
. =[,,]
= .

.
,
.
. ( 73
)

4
[1] ''
[2] ''
[3] ''
[4] ''
1

<

68

[] = ''
!
+ 1
!
1
!
[] = '' !
+ 1
+ 1
_
!
!
= 2 ! 2,
_
+ 1
_

. ,
,... .
, =2 2 .
92 -

[] ,
.
. ,
.
.
=[,,,] =1 =[,,,,,,,] =3 .


8
[1] ''
[2] ''
[3] ''
[4] ''
[5] ''
[6] ''
[7] ''
[8] ''
0
1 - 1
[] = '' [ + 1] = ''
+ 1
_
_

93 -

,
.
. =[,,,,,,,]
=2 .

69

.
.
, 2
.
-- (
). ,
1.
1 - 1
[] = '' [ + 1] = ''
+ 1
!
+ 1
_
_

,
- .
0
0
<
+ 1
[] = '' [ + 1] = ''
+ 1
+ 1
_
_

94 -

[] [] ,
- (
) .

.
.


. (
ASCII),
, 89.
. ,
.
.

.
: () .
,
.
, . ()
. -
[] [] . ,
70

( ) (
), .
.
.
- (
,
, '' ).
, .
, .

7
[1] ''
[2] ''
[3] ''
[4] ''
[5] ''
[6] ''
[7] ''
[1]
[2]
[3]
[4]
[5]
[6]
[7]

''
''
''
''
''
''
''


1

1
[] []
+ 1
_
< + 1
[] ''


_
+ 1
_

71

!
!
!
! ..
! ..
! ,

You might also like