10 2013 - informatics.smg.bginformatics.smg.bg/uploads/Nakov-Dobrikov-Programming++Algorithms... ·...
-
Upload
trinhthuan -
Category
Documents
-
view
248 -
download
4
Transcript of 10 2013 - informatics.smg.bginformatics.smg.bg/uploads/Nakov-Dobrikov-Programming++Algorithms... ·...
-
,
,
( 2).
, 10 2013
():
: http://www.programirane.org
Facebook : http://www.facebook.com/groups/168112146541301
http://www.programirane.org/http://www.facebook.com/groups/168112146541301
-
1 - , 2 740
: , 2012.
, , .
.
.
= ++;
pdf , , ,
.
, .
,
pdf .
-
............................................................................................................................. 3
.......................................................................... 13
........................................................................... 15
0 , , 17 0.1. .................................... 18
0.1.1. - ................................................................................... 18 0.1.2. .................................................................... 19 0.1.3. ................................................................... 20 0.1.4. ............................................................................... 20 0.1.5. ...................................................................................................... 21 0.1.6. ...................................................................... 21 0.1.7. ........................................................... 22
0.2. ................................................................................................................ 23 0.3. ................................................................................................... 24
0.3.1. ............................................................................. 24 0.3.2. ......................................................................................... 25 0.3.3. ................................................................................................. 25 0.3.4. .................................................................................................................... 26
0.4. = ++........................................................................................... 26 0.4.1. ................................................................................ 26 0.4.2. ................................................................... 27 0.4.3. C? .......................................................................................................................... 28 0.4.4. ............................................................................. 29
0.5. ........................................................................................................................... 29 ................................................................................................................................. 29 0.5.1. ................................................................................................................ 29 0.5.2. ........................................................................................................... 30 0.5.3. .................................................................................................... 30
1 ...................................................................... 33 1.1. ........................................................... 33
1.1.1. .............................................................................. 33 - ...........................................................................................................................33 - ....................................................................................................................................35 - . ...................................37 - ...........................................................................................................38 - , , n- ............................................................................................39 - . ........................................................................................40 - ...............................................................................................................................41
1.1.2. ........................................................... 43 1.1.3. ................................................................................................................... 44
- ................................................................................45 - . ...............................................47 - ..............................................................................50 - , ........................................51
-
4
1.1.4. ...................................................................................... 52 - .................................................................................................................52 - . .....................................................................................54
1.1.5. , . ........................... 56 1.1.6. ................................................................................ 59
- p- .........................................................61 - p- . .......................63
1.1.7. .................................................................................................................. 65 - .............................................................65 - ....................................................................66
1.2. ............................................................................................................ 67 1.2.1. ....................................................................................................................... 68 1.2.2. ...................................................................................................... 69 1.2.3. - . ........................................................ 74 1.2.4. - ............................................................................................... 76 1.2.5. ....................................... 77
1.3. ................................................................................ 80 1.3.1. ..................................................................................................................... 80
- ...........................................................................................................................81 - .......................................................................................................84 - ...................................................................................................86
1.3.2. .......................................................................................................................... 86 - , .............................................................................................................86 - .............................................................................................................................88
1.3.3. ..................................................................................................................... 90 1.3.4. ......................................................................................................... 92
- ...........................92 - .........................93 - ...........................94
1.3.5. ............................................................................................. 96 - .....................................................................................................96
1.4. ................................................................................... 97 1.4.1. ............................................................................................ 99 1.4.2. ............................................................................................... 99 1.4.3. O(F): ..........................................................................................100 1.4.4. (F): .........................................................................................102 1.4.5. (F): .........................................................................................103 1.4.6. ..................................................................105 1.4.7. ..........................................................................106 1.4.8. ..................................................................107
- ....................................................................................................... 107 - ....................................................................................... 107 - ................................................................................................ 107 - if- ................................................................................................................... 107 - ................................................................................................................................. 108 - .................................................................................................................. 108 - ....................................................................................... 109 - ................................................................................................... 110 - ............................................................................................................................ 110
1.4.9. .....................................................................................112 - ............................................................. 112
-
5
- .............................................................. 114 - ..................................................................................... 114
1.4.10. ........................................................117 - .................................................................................................. 117 - .................................................................................................... 118 - ............................................................................................................... 118
1.4.11. ..............................................................120 1.5. ...............................................................................................................120
1.5.1. ........................................................................................................120 1.5.2. ..................................................................................................................133
- , , .................................................................................... 133 - .................................................................................... 137 - ....................................................................................................... 138
2 ...............................................143 2.1. , , ........................................................................................................144
- .................................................................................................................................... 145 - ............................................................................................................................... 146 - ..................................................................................................................................... 147
2.1.1 () ..................................................................147 - .................................................................................................................................... 147 - ............................................................................................................................... 149
2.1.2 () .............................................................................151 - ....................................................................................................... 152 - ........................................................................................................ 153 - , ........................................................... 153 - , ........................................................... 154 - ....................................... 154 - , ................................................................ 155
2.2. ................................................................................................................158 - ..................................................................................................... 163 - ..................................................................................................... 164 - .................................................................................. 164 - ......................................................................................................................... 168
2.3. ........................................................................................................169 2.3.1. . - .............................................................................172 2.3.2. B- ......................................................................................................................174
2.4. - ........................................................................................................................176 - - ..................................................................................................................... 176 - ............................................................................................................................. 177
2.4.1. - .............................................................................................178 - ................................................................... 178 - .............................................................................................. 178 - - ................................................................................. 179 - - .......................................................... 179 - - .............................................................................. 180
2.4.2. .......................................................................................................184 - ............................................................................................................184
- ............................................................................................................. 184 - ...................................................................................................... 185 - .............................................................................................................. 185
- ..............................................................................................................185
-
6
- ........................................................................................ 185 - .................................................................................................. 186
2.4.3. - .......................................................................................186 2.5. ...............................................................................................................192
2.5.1. ........................................................................................................192 2.5.2. ..................................................................................................................196
3 ...........................................................................................................199 3.1. ................................................................................................200
3.1.1. .................................................................................................200 3.1.2. ...........................................................................................201 3.1.3. . .............203 3.1.4. ....................................................................................................206 3.1.5. .............................................................................................207 3.1.6. ...........................................................................................208 3.1.7. .....................................................................213 3.1.8. ........................................................................................215 3.1.9. .........................................................................216 3.1.10. .....................219
3.2. ......................................................................................221 3.2.1. ......................................................................................221 3.2.2. ................................................................................................223 3.2.3. ..................................................................................................226 3.2.4. .....................................................................................229 3.2.5. ......................................................................................232
3.3. ........................................................................................................233 3.3.1. ...............................................................................235 3.3.2. .................................................................................236 3.3.3. ...............................................................................................237 3.3.4. ........................................................237 3.3.5. ..............................................................................................................237 3.3.6. .........................................................................................................238 3.3.7. .........................................................................238 3.3.8. - ...............................................................239 3.3.9. - .............................................................................239 3.3.10. ...............................................................................................239
3.4. ...............................................................................................................240 3.4.1. ........................................................................................................240 3.4.2. ..................................................................................................................243
4 .................................................................................................................245 4.1. .................................................................................................246
4.1.1. .........................................................248 4.1.2. ...........................................................249
4.2. . ..................................................................251 4.3. .................................................................................................................252 4.4. .......................................................................................................256 4.5. ..............................................................................................258 4.6. ...............................................................................................................260
4.6.1. ........................................................................................................260
-
7
4.6.2. ..................................................................................................................261
5 .......................................................................................263 5.1. ...............................................................................................................263 5.2. ........................................................................267
5.2.1. .......................................................................................................267 5.2.2. , .......................................................268 5.2.3. ( ) .............................................268 5.2.4. ............................................269 5.2.5. ........................................................................................269 5.2.6. ...............................................................270
5.3. ............................................................................................................271 5.3.1. ...................................................................................................271 5.3.2. ..............................................................................................274
5.4. , ................................................................276 5.4.1. .......................................277
- - ................................................... 277 - ......................................................................................... 279 - ...................................................... 281
5.4.2. .............................................................................................283 - ............................................................................................. 284 - - ............................................................................................... 284 - .......................................................................................................... 285 - ........................................................................................... 288 - ...................................................................................................... 290 - ................................................................ 293 - ........................................................... 293 - - ....................................................................................... 294 - - ............................................... 297
5.4.3. ...............................................................................................................................297 - ............................................................ 297 - .............................................................................................. 300
5.4.4. . .............................................300 5.4.5. .............................................................................................................303 5.4.6. ...........................................................................................................................306
- ............................................................................................................. 307 - ............................................................................ 311 - ...................................................................................................... 312
5.5. . .........................................312 5.5.1. . ...................................................313 5.5.2. .........................................................................................314 5.5.3. .................................................................................................317 5.5.4. ..................................................................................................318 5.5.5. ..............................................................................................320 5.5.6. ..................................................................................322 5.5.7. .....................................................324 5.5.8. ......................................325
5.6. .............................................................................................326 5.6.1. ........................................................................................326 5.6.2. .........................................328 5.6.3. . .....................................330
-
8
5.6.4. k- ........................................................................333 5.7. .........................................................................334
5.7.1. ....................................................................................334 - ....................................................................................................... 334 - ............................................................................................................ 338 - ........................................................................... 340
5.7.2. ..............................................................................................340 - .................................................................................. 341
5.7.3. ............................................................................................343 5.7.4. ..................................................................................................................................346 5.7.5. , .......................................................................................348
- p- p- .......................................................................................................... 350 5.7.6. . ................................................353
5.8. ..............................................................................................354 5.8.1. . .................................................................354
- .................................................................. 355 - ................................................................... 355
5.8.2. ..................................................................................................355 5.9. ...............................................................................................................357
5.9.1. ........................................................................................................357 5.9.2. ..................................................................................................................363
6 . NP- ..........................................369 6.1. .............................................................................................369
6.1.1. .....................................................................................................369 6.1.2. ....................................................................................................370 6.1.3. ..........................................................................................................370 6.1.4. ..........................................................................................................................370
6.2. NP- ................................................................................................................373 6.3. .............................................................................................................374
6.3.1. ......................................................................376 6.3.2. .....................................................................................................380 6.3.3. - ....................................................................383 6.3.4. ...........................................................................................................385 6.3.5. ............................................................................................388 6.3.6. ...........................................................................391 6.3.7. ................................................................................................395
6.4. ...........................................................................398 6.4.1. ( ).............................................................398
6.5. ......................................................................................401 6.5.1. "X"- "O".....................................................................................................402 6.5.2. .........................................................................405 6.5.3. - ....................................................................................................406 6.5.4. - ...................................................408
6.6. ...............................................................................................................409 6.6.1. ........................................................................................................409 6.6.2. ..................................................................................................................413
- NP- ................................................................................................................ 413 - ........................................................................................................... 425
7 .......................................................................................427
-
9
7.1. K- ......................................................................427 7.2. .............................................................................................................................434 7.3. .......................................................................................445 7.4. ....................................................................................................450 7.5. ................................................................................................456 7.6. .........................................458 7.7. .................................................................................461 7.8. .............................................................................................464 7.9. ..........................................................................................466 7.10. ......................................................471 7.11. .......................................................................................................474 7.12. .............................................................................................................475
7.12.1. ......................................................................................................475 7.12.2. ................................................................................................................478
8 .........................................................................481 8.1. .............................................................................................................................481 8.2. ...........................................................................484
8.2.1. .....................................................................................................484 8.2.2. ..........................................................................................................495 8.2.3. ..............................................................................................497 8.2.4. . ...............................................504 8.2.5. ............................................................508 8.2.6. - ........................................................................................513 8.2.7. - ........................................................................517 8.2.8. ...................................................................................522 8.2.9. .................................................................................................526
8.3. ..............................................................................................528 8.3.1. .......................................................................................................528 8.3.2. .................................................................................................532 8.3.3. .............................................................................................................533 8.3.4. .................................................537 8.3.5. .....................................................539 8.3.6. .................................................................................540 8.3.7. ..........................................................................................542 8.3.8. ...........................................................543 8.3.9. ............................................................................................................548 8.3.10. .................................................................................................549
8.4. .................................................................551 8.4.1. .............................................................................................................552 8.4.2. ...............................................................................................................553 8.4.3. .......................................................................................................555 8.4.4. ....................................................559 8.4.5. ............................................................................................561 8.4.6. ...................................................................................................564 8.4.7. ............................................................................................565 8.4.8. .............................................................................................................568 8.4.9. ....................................................................................................571 8.4.10. .........................................................................................574
-
10
8.4.11. .............................................................................................................576 8.4.12. - ............................................................................................................579 8.4.13. ..............................................................................................582
8.5. ...............................................................................................................584 8.5.1. ........................................................................................................584 8.5.2. ..................................................................................................................591
9 ..................................595 9.1. ...............................................................................................................595
9.1.1. ...........................................................................................................596 9.1.2. ........................................................................598 9.1.3. .................................................................601 9.1.4. ...................................................................................604 9.1.5. .......................................................................................605 9.1.6. .....................................................................................607 9.1.7. ...............................................................................................608 9.1.8. . . ...........................................................610
9.2. .......................................................................................................616 9.2.1. ......................................................................617
- .......................................................................................... 618 9.2.2. ..........................................................................621 9.2.3. ..................................................................................................622
9.3. ........................................................................627 9.3.1. .........................................................................................628
9.4. ...............................................................................................................629 9.4.1. ........................................................................................................629 9.4.2. ..................................................................................................................633
10 ..............................................................................................637 10.1. ............................................................................................................................637 10.2. ........................................................................................................638 10.3. ................................................................................640
10.3.1. ...............................................................................................640 10.3.2. ................................................................................641 10.3.3. ........................................................................................643 10.3.4. ...........646 10.3.5. .................................................................................................646 10.3.6. .....................................................................................................648 10.3.7. .............................................................................................649 10.3.8. . .........................650 10.3.9. ............................................................................653 10.3.10. : PackBits ..............................................................655
10.4. ....................................................................................................656 10.4.1. - ......................................................................................656 10.4.2. ...............................................................................................660 10.4.3. .............................................................................671 10.4.4. K ......................................................................................................672 10.4.5. ............................................................................................673
10.5. ..............................................................................................681 10.5.1. ....................................................................683
-
11
10.5.2. ......................................................................................................686 10.5.3. : MNP-5...................................................................688
10.6. .......................................................................................................690 10.6.1. .....................................................................................................................691 10.6.2. ...........................................................................................................695 10.6.3. .............................................................................................696 10.6.4. ....................................................................697 10.6.5. LZ77. ..........................................................698 10.6.6. LZSS. ..............................................................................................698 10.6.7. FLZ. LZ77 ......................................................................................699 10.6.8. LZW. ................................................................................700 10.6.9. GIF. CompuServe .....................................................................706 10.6.10. ....................................................................707 10.6.11. ................................................................................708 10.6.12. LZW ..................................................................................................709
10.7. ..............................................................................................710 10.7.1. ..................................................................................710 10.7.2. JPEG ..............................................................................................................................711 10.7.3. . MPEG .......................................................713 10.7.4. ......................................................................................................................715 10.7.5. .......................................................................................716
10.8. .............................................................................................................717 10.8.1. ......................................................................................................717 10.8.2. ................................................................................................................725
...........................................................................................................................727
......................................................................................................733
-
12
-
-
(, ) - , . , , " " . , - , , "" Introduction to Algorithms Cormen, Leiserson Rivest, .
, "-", , . , . , . -.
. , , , ( "" ) .. , , .
- . , . , , , . , - . " ", , , .
, - . , , -, - . , , , - , .., , , .., , , , , .
. , .
, - . , , - , . , , , , .
1 2002
-
14
-
15
,
. , :
, ;
, -mail .
, (
) ,
.
- ,
( )
.
!
, ,
. , -
:
;
, ;
;
.
! , !
,
3 2005 .
-
16
-
0
,
,
"Think of all the psychic energy expended in seeking a
fundamental distinction between 'algorithm' and 'program'".
~ Epigrams in Programming
[Adams-1980]
, ,
. ,
1975 ( ), -
, , , ,
. , ,
, , ,
.
, , -
.
,
, .
10 [, .] ,
,
, .
-
, -. ,
( ) computer science,
. -
, : ( : ),
(: informatique), (: informatik) .
informatics
, . , informatics
: ,
- computer science (
), Microsoft Word
.
:
(. International Olympiad in Informatics), (. Balkan
Olympiad in Informatics).
... ,
- ,
, .
-
0 - , 18
0.1.
, - -
, 0.1. (
? ?)
0.1. .
0.1.1. -
, -
. -
, - -
. - ,
.
- :
, , .
-
0 - , 19
, - .
.
- : " , -
, ". ,
: , -
, , , () ,
. , ,
,
, , , . (
0.1.1., 0.1.1. 0.1.1.).
0.1.1. : ,
.
0.1.1. -
: , .
0.1.1. , .
0.1.2.
, , -
, , . -
-
0 - , 20
, ,
, ( ,
). , ,
, ,
() .
,
.
, -
, , , , -
. , -
. - -
, -
, . , ( . hacker,
hacking) ( . cracker, cracking) .
, .
( ),
, , .
, .
-
- .
, ,
, .
0.1.3.
10 -
.. .
- -
( -, - ,
).
, , -
.
, :
, .
,
.
0.1.4.
,
,
. ""- Maxis
.
, , -
. , -
, . --
-
0 - , 21
-
.
0.1.5.
,
.
,
:
: , .
: , ,
.
: (
)
( ). ,
, , ,
, .
- ,
, :
, .
, :
? , , , -
, .
- .
. -,
.
()
, ,
.
-
-
.
-
, .
0.1.6.
, ,
. , , .
, ,
: , ,
.
, ,
(
).
( ) (
-
0 - , 22
). ()
, .
. -
( -) -
"" .
- -
.
,
.
.
,
- . -
.
0.1.7.
-
:
. , -
-
.
:
. ,
(, , , .).
,
. , ,
. , , ,
25 . ,
, .
,
. . -
:
( ).
,
, , :
, - (
) .
-
0 - , 23
0.2.
( . lamer),
. , ,
, [-1989].
, - , ,
.
-, - , ,
, , .
, ,
.
, ,
:
i++; /* i */
e , , Minesweeper Windows
- ,
1 [Prize-2000].
, ,
. , ,
10 .
,
.
, , ( . garbage collector)
, Java,
, XX .
, , -
Google ,
.
, , -
+ .
, , "
, (n2)", - (n
3), n
3 > n
2.
, C -
, .
, ,
, .
, , , ,
,
A B C D E F
. ,
, , .
-
0 - , 24
, 10 10 -
, , 10 ,
10% -.
, brute-force- ftp ( . File Transfer Protocol
) , ,
hack- , - 5 (
), .
,
( /,
).
, , -
(, ).
, .
, :
0x000000FF & (i >> 24)
, -
, :
n
i
in
mf
m
n
1
2
2
, . , -
, : ,
, .
, ,
. , -
, .
, , -
.
( ):
, .
, , ,
:
, .
0.3.
,
. , .
, ,
.
0.3.1.
al-
Khowarizmi, VIII
Al-
jabr wal muqabala (, -
). -
, :
-
0 - , 25
Al-Khashi, XV
16 .
, , . , XII-
Al-*
, ,
, ,
[Knuth-1/1968].
,
, :
;
, ;
, - .
( ) - ,
(, -
). - ,
.
, .
. -,
,
.
,
, XX .
0.3.2.
300 . . . . , -
m n:
1) m - n, . 2) m : m n. 3) m 0, 1),
m n.
4) (- ) n.
250 . . . . , ,
- . , -
, 250 . . . . , ( ), -
.
: .
780-850 . , , Abu Ja'far Mohammed Ben
Musa al-Khwarizmi "Hisab al-jabr w'al-muqabala".
1424 . , Ghiyath al-Din Jamshid Mas'ud al-Kashi
16 .
0.3.3.
1845 . (Gabriel Lame ,
, ,
) , ,
5 - .
-
0 - , 26
1910 . ,
.
0.3.4.
1900 .
( ) -
.
1920-30 . ,
.
1930 . -.
1936 . ,
, . (
, .)
.
XX ( )
, . -
, ,
. , ,
XXI ,
.
, ,
, , .
0.4. = ++
, .
:
;
;
C , ;
, .
: , ,
? , :
1. = ++, = -
++.
2. .
3. ++: ++
.
0.4.1.
-
.
( , , ),
,
, .
-
0 - , 27
, , .
- -
(
- -
).
,
, ++, Java. -
( ) ,
.
-
, . -
,
, "
".
,
. ,
, .
,
/ , -
. -
- , ,
.
( . -
, ,
.). - ( )
( -).
0.4.2.
1. " " - ,
, , -
.
2. " " - -
, , .
3. ""
4. "" "" .
, ( ) -
"" .
-
. -
, -
. , . -
, -
, .
5. " "
6. " . NP- "
7. " "
8. " "
9. " "
10. ""
-
0 - , 28
0.4.3. C?
-
.
( upgrade ++) , , -
, . - (
) "- " Java.
, -
, "" ,
Java ( -
).
: -
, -
"" , -
( ). ,
( )
. ,
, -
,
.
, , -
, -
.
, ++? upgrade-
, . , -
++ ,
, , . ,
: , ,
- , . , , -
Algorithms in Pascal, - , ++ Java. -
++.
, ? , .
: - , -
, ,
- , -: - -
. , ,
. :
( ), ,
10 .
Delphi.
,
. informatics,
. Borland International
, .
Delphi .
Macintosh ( ,
) Linux, Unix .
: ++, Java, -
. , --
Java, Javascript, Perl, PHP
- :
, .
-
0 - , 29
0.4.4.
(, , , -
..), , -
"" -
.
DOS ( Borland C++ 3.1),
Windows ( Visual C++ 6.0).
ANSI .
Windows, DOS, -
/ .
0.5.
, , .
.
0.5.1.
-
, , -
, ,
.
, "
" ( ). ,
, .
SAP Labs Rila
Solutions .
, ( ),
- , -
( , deadline
. 22:20 01:55 .).
. -
( -
). ( ) ,
, ,
(
.).
. , -
,
.
, . -
, , , , -
, , , , ,
.
-
0 - , 30
, -
, ,
.
- ( -
, . ).
( ), -
.
, .
, " " -
, bold ,
- .
0.5.2.
,
http://www.nakov.com/algoplus-bugs/submit-bug.php:
(20), (15), (12), (12),
(6), (5), (3), (3),
(3), (3), (3), (2),
(2), (2), (2), (2), (2),
(2), (2), (2), (2),
(2), (2), Ka (1), (1), (1),
(1), (1), (1), (1),
(1), (1), (1), (1),
(1), (1), (1) (1) .
0.5.3.
. , , -
-
, . , , -
, (, ) -
( ).
:
http://www.facebook.com/groups/168112146541301
:
[email protected]; [email protected]
[email protected]; [email protected]
- ,
.
-
:
http://www.programirane.org
:
;
, ; ; ; ;
; - .
http://www.nakov.com/algoplus-bugs/submit-bug.phphttp://www.facebook.com/groups/168112146541301http://www.programirane.org/
-
0 - , 31
-
1
" :
, , , ."
~
1.1.
,
-.
,
- , .
1.1.1.
,
, , .
, , ,
,
. -. ,
.
.
-
-
. - .
, , () , -
, .
, , ,
, , ax2 + bx + c = 0 .
- :
A, B, C, ... . , ,
- ( ).
,
A a1, a2, ..., an
:
A = {a1, a2, ..., an}
, ai, i = 1,2,...,n, A aiA,
aiA. -
( A - n),
|A|. n = 0, . -,
( 1.1.1.):
-
1 - 34
, (a, b, ) ,
, , .
A
a
b
1.1.1. .
, ,
[,-1973]. ,
-.
1.1. A -
B, A B. B ( 1.1.1.). -
, B , A
() B. B.
A B A A B B
B A
(a) () () ()
1.1.1. (), (), () () .
1.2. C A B,
a , aA aB. C = AB.
1.3. C = AB A B C,
, A B.
1.4. C = A\B A B C,
, A, B.
1.5. , .
.
-, .
, ,
. ():
{a, a, b} {a, b, b} {a, b, a} {a, b} {b, a}
1.6. , , -
.
1.7. n- , -
n- ().
-
1 - 35
n- , .
, (a, b, c) (a, c, b) ..
:
1. A = {1,2,4,5,7} B = {2,3,4,5,6}. :
AB, AB, A\B, B\A.
2. A B , AB = A.
B?
3. A B : AB = (AB) \ (AB).
A = {1,2,4,5,7} B = {2,3,4,5,6}.
4. , A B = B A.
: AB, AB, A\B, B\A, AB?
-
, -
. (
3 "" : , ),
.
. , -
, , .
1.8. ( N) -
, 0, 1, 2, 3, ....
, .
- :
, .
, N - , .
, n-
.
1.9. Z :
..., 3, 2, 1 ( ), 0 (), 1, 2, 3, ... ( ).
,
[-1995]. - ,
,
.
-
. ANSI C (American National Standards Institute [ANSIC])
( 1.1.1. Borland C DOS), -
, :
|short| |int| |long|
int ( , DOS
2 , Windows 4).
, unsigned, ,
: (unsigned)(-1).
-
1 - 36
1.1.1a. Borland C DOS.
1.1.1a. ,
.
, . , ( -
) , ( . overflow)
.
1.10. p/q, p q q -
. Q.
1.11. , :
x = n + 0,d1d2d3... ,
n , di 0 9. 0,d1d2d3...
. ,
kk
k
k
k dddnxddd
n10
1
10100101010010
2121
kN, k 0.
, di .
(.. ) . -
1/3 = 0,333333..... 3
. 1/3 = 0,(3) .
- , 1/7 = 0,(142857).
, , ..
p/q (p,qN, q > 0),
:
= 3,1415926535 ....
, -
355/113, ,
( 6 )
. 22/7.
:
, [-1995]. , -
IEEE (Institute of Electrical & Electronics
Engineers). , .
1.1.1. Borland C DOS.
float 3,4.10
38 , ..., 3,4.10
38 32
double 1,7.10308
, ..., 1,7.10308
64
long double 3,4.104932
, ..., 1,1.104932
80
char 128, ..., 127 8
unsigned char 0, ..., 255 8
short int 32768, ..., 32767 16
int 32768, ..., 32767 16
long int 2147483648, .., 2147483647 32
unsigned short int 0, ..., 65535 16
unsigned long int 0, ..., 4294967295 32
-
1 - 37
1.1.1. Borland C.
,
( . underflow):
( ,
).
: 1/3
.
, , - ( > 0) ,
( ), - ,
0.
:
, , -
.
- .
m n , m 0. q r (0 r <
m) , n = q.m + r. q n/m, r
. r , , m n (n
m) m|n. ( )
/ %. "",
:
q = n / m;
r = n % m;
1.12. (n m) % z = 0, , n m z
n m (mod z).
n. : ( )
n 10. , n . ,
n , , n
:
#include
unsigned n = 4242;
int main(void) {
unsigned digits;
for (digits = 0; n > 0; n /= 10, digits++);
printf(" %u %u\n", n, digits);
return 0;
}
digits.c
:
1. m n, (m,n) : (7,3), (7,3),
(7,3), (7,3), (3, 7), (3,7), (3,7), (3,7).
2. m n (m 0) -
n = q.m + r, 0 r < m, (q, r ). [-1995]
3. .
?
-
1 - 38
-
a1, a2, ... , an. S = a1 + a2 + ... + an -
:
n
i
iaS1
,
ni
iaS1
,
ni
iaS..1
R(x), i
:
)(: xRi
iaS
C Sn n : unsigned sum(unsigned n)
{ unsigned i, s = 0;
for (i = 1; i
-
1 - 39
)(: )(:)(: )(:
)2(xSj xRi
ij
xRi xSj
ij aa
)(&&)()(||)()()(
)3(xRxS
i
xRxS
i
xS
i
xR
i aaaa
S(x)||R(x) S(x)&&R(x) -
, S R, i j.
P = 1.a2.a3.....an , ,
:
n
i
iaP1
,
ni
iaP1
ni
iaP..1
a[], n -
, :
int mult(int a[], unsigned n)
{ unsigned i;
int s = 1;
for (i = 0; i < n; i++) s *= a[i];
return s;
}
mult.c
:
1. .
2. (1), (2) (3) .
3. , (1), (2) (3).
4. (1), (2) (3), :
n
mi
i
mni
i
ni
i aaaa ..1....1
, 1 n m
- , , n-
1.13. x , y , -
:
xy = x.x. ... .x
(y )
y < 0, xy = 1 / x
-y.
(x 0):
xy = x
y-1.x
xy = x
y+1/x
xy1+y2 = x
y1.xy2
xy1.y2 = (x
y1)y2
xy y -
:
double power(double x, unsigned y)
{ double res = x;
unsigned i;
for (i = 1; i < y; i++) res *= x;
return res;
-
1 - 40
}
power.c
- ( 7.5.) , - -
xy.
xn = y (n , n > 1), x n- y
n yx . , y n- y .
n = 2, y y
y . ,
:
q pq
p
xx
- , x y (x > 1). y
y = d,d1d2d3 ... :
kk
k
k
k ddddy
dddd
xxx 101
10100101010010
2121
, xy
, k.
, -
, - . y = bx b 1, b >
0, y > 0 x. y b
logb y. (x > 0, y > 0, b > 0, b 1, c
> 0, c 1):
)4(log
loglog
)3(log.log
)2(loglog)(log
)1(loglog
b
xx
xyx
yxxy
bbx
c
c
b
b
y
b
bbb
x
b
xb
- , 2
log x log2 x. ln x
log x: H e = 2,71828... ( 1.1.6.)
:
1. - , .
2. (1), (2) (3) , .
- .
n, nN ( n!) 1 n:
n
i
inn1
...2.1! ,
0! = 1.
C n! :
unsigned long factoriel(unsigned n)
{ unsigned i;
unsigned long r = 1;
-
1 - 41
for (i = 2; i
-
1 - 42
- ,
struct data, :
struct data {
int a;
int b;
...
} A[m][n];
/ -
. - ( 1.1.1.).
11 12 ... 1 n
a 21 22 ... a 2 n
m 1 a m 2 ... a mn
11 12 ... 1 n
a 21 22 ... a 2 n
m 1 a m2 ... a mn
a) ) 1.1.1. : () () .
/* */
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
scanf("%d", &A[i][j]);
/* */
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
scanf("%d", &A[j][i]);
/* */
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++)
printf("%.3d", A[i][j]);
printf("\n");
}
matrix.c
Amn Bmn Cmn , cij = aij + bij ( i = 1, 2,...,
m, j = 1, 2, ..., .n), 1.1.1.
11 12 ... 1n
a21 22 ... a2n
...
m1 am2 ... amn
b11 b12 ... b1n
b21 b22 ... b2n
b m1 bm2 ... bmn
Cmn = + =
11+b11 12+ b12 ... 1n+ b1n
a21+ b21 22+ b22 ... a2n+ b2n
m1+bm1 am2+ bm2 ... amn+ bmn
1.1.1. .
for (i = 0; i < m; i++)
-
1 - 43
for (j = 0; j < n; j++)
C[i][j] = A[i][j] + B[i][j];
summat.c
Amn Bnp Cmp, :
n
k
kjikij bac1
. , i = 1,2,...,m j = 1,2,...,p.
-, m.p.n
. n > m n > p, n3.
for (i = 0; i < m; i++)
for (j = 0; j < p; j++) {
C[i][j] = 0;
for (k = 0; k < n; k++)
C[i][j] += A[i][k] * B[k][j];
}
multmat.c
, , . -
, nlog 7
( n2,81
) , -
. , -
, 7.6., .
:
1. unsigned a[MAX][MAX].
void fillMatrix(unsigned a[][MAX], unsigned n),
a[][] :
0 20 19 17 14
1 0 18 16 13
2 5 0 15 12
3 6 8 0 11
4 7 9 10 0
2. unsigned a[MAX][MAX]. , -
, n = 5 :
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
1.1.2.
: a1, a2, ..., an. -
P = a1.a2..an.
, ai = i, i = 1,2,...,n, P = 1.2 ... n = n!.
-
1 - 44
,
1.1.1., .
n!. n! ,
-. 10! e 3628800, . 20!
C.
- , ,
, :
P
n
i
ia1
10log1, [x] -
, - x.
, ,
P [1+log10(P)], -
:
log P = log(a1.a2. an) = log a1 + log a2 + + log an.
n!
#include
#include
const unsigned long n = 123;
int main(void)
{
double digits = 0;
unsigned i;
for (i = 1; i
-
1 - 45
, .
100
, ,
, (, ,
).
, :
[a, b]?
?
n- ?
(x) ,
x, (x) . (
6.2.), (x), ( , ln x loge x):
( ) (x) x / ln(x a),
, - x.
- = 1.
. n- [n.ln(n)]. -
[n(ln(n) + ln(ln n 1))].
. x 1/ln(x).
,
[Primes-1][Primes-2]:
1. n > 2 . 2. n > 17 . 3. -
.
4. n > 5 . 5. .
. n2+m
2 n
2+m
2+1.
. n2+1.
. () n2 (n+1)
2 .
:
1. (x) - , -?
2. .
3. .
-
, , :
[2, 2
p 1] p , , , p .
-
1 - 46
,
, ,
- .
(). p , (p1)! 1 (mod p).
(p1)!, - -
2
p 1 .
, 2
p 1:
p (). , ,
p x, x > p , , p p = x.y, y < p , ..
- p . :
#include
#include
const unsigned n = 23;
char isPrime(unsigned n) /* 1, , 0 */
{ unsigned i = 2;
if (n == 2) return 1;
while (i
-
1 - 47
{ unsigned i = 0;
while (i < K && prime[i] * prime[i]
-
1 - 48
1.1.3. .
: ,
( ).
:
2 n :
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... , n
2. ,
:
(2), 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... , n
-, :
3. , 3:
(2), (3), 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... , n
, 5 5-:
(2), (3), 4, (5), 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... , n
"" , -
i . ,
,
. -
:
1) sieve[] . -, , 1. - i,
(.. -
). i = 2.
2) i, sieve[i] 0. i e . 3) M 1 sieve[k], k = i, 2i, 3i, , (n/i).i (..
i ).
4) i n, 2, . #include
#define MAXN 30000
/* n */
-
1 - 49
const unsigned n = 200;
char sieve[MAXN];
void eratosten(unsigned n)
{ unsigned j, i = 2;
while (i
-
1 - 50
}
void findPrimes(unsigned n)
{ unsigned i = 2;
while (i < n) {
if (isPrime(i)) {
primes[pN] = i;
pN++;
printf("%5u", i);
}
i++;
}
}
int main(void) {
findPrimes(n);
printf("\n");
return 0;
}
rproc.c
, n ,
. [a,b] -
a (a>>1), - -
.
2, 3 5.
:
n = 30.q+r, r[0..29] r[0, 1, 2, ..., 14, 15]. 30.q = 2.3.5.q
30 8. . .
4k/15 , :
30.q1, 30.q7, 30.q11, 30.q13
-
.
:
1. : 3) k = i2, -
i .
. .
2. .
3. , -
4 .
-
( ) P (P>1)
() P1q1. P2
q2. .Pnqn, P1 < P2 <
< Pn P , a qi . [-1995].
:
520 = 23.5
1.13
1
64 = 26
2345 = 51.7
1.67
1
-
1 - 51
A , -
( 2 1.1.5.), :
P.
1) i = 2. 2) k = 0. P i, k .
3).
3) k > 0, ik.
4)
4) P > 1, i 2).
, . -
:
#include
unsigned n = 435; /* , */
int main(void) {
unsigned how, i, j;
printf("%u = ", n);
i = 1;
while (n != 1) {
i++;
how = 0;
while (0 == n % i) {
how++;
n = n / i;
}
for (j = 0; j < how; j++)
printf("%u ", i);
}
printf("\n");
return 0;
}
numdev.c
:
.
- ,
: a1, a2, ..., an. ,
P = a1.2. ... .an.
1.1.2., -
. ,
: , , 2 5,
, 2, , 5.
, , :
1) i (i = 1, 2,..., n) ai ai = 2Mi
.5Ni
.bi, bi % 2 0, bi % 5
0.
2) P = cnii
ni
i NM
.5.2 ..1..1 , (c ), a
n
i
Mi1
n
i
Ni1
.
, :
25, 4, 20, 11, 13, 15
-
1 - 52
:
20.5
2.1, 2
2.5
0.1, 2
2.5
1.1, 2
0.5
0.11, 2
0.5
0.13, 2
0.5
1.3,
4 . :
25.4.20.11.13.15 = 4290000.
- .
.
n!.
][log
1
5
5
n
kk
n . - ,
2 5 n . #include
const unsigned n = 10;
int main(void) {
unsigned zeroes = 0, p = 5;
while (n >= p) {
zeroes += n / p;
p *= 5;
}
printf(" %u! %u\n", n, zeroes);
return 0;
}
factzero.c
:
1. ,
.
2. , -
.
3. , n!
1.1.4.
-
1.15. ,
2p1, p e .
39 p, 2p1 :
2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607, 1279, 2203, 2281, 3217, 4253, 4423, 9689, 9941,
11213, 19937, 21701, 23209, 44497, 86243, 110503, 132049, 216091, 756839, 859433, 1257787, 1398269,
2976221, 3021377, 6972593, 13466917
37 p 37
. ( 1999 2001 .),
38- 39-, ,
-. p. .. - .
: , -
. ,
. 23- 1963 .,
,
-
1 - 53
"211213
1 " (
1.1.4.).
- , , :
213466917
1 8107892 (??39- M )
26972593
1 2098960 (??38- M )
23021377
1 909526 (37- M )
22976221
1 895932 (36- M )
21398269
1 420921 (35- M )
- , -
. ,
(
-).
- : , ""
38- , $50000.
$250000 [Primes-3].
1.1.4. 2
11213-1 .
:
p = 2, 3, 5, 7, 11, = 2p 1 .
, .
1870 , -
- ,
( e -
[Guinier-1991]).
(LucasLehmer Test, 1930) :
:
1 = 4
n+1 = (En )2 2
:
4, 14, 194, 37634, .
(-). m = 2p 1 ( p )
, :
(Ep1) % (2p 1) = 0
-
.
.
:
1. n ,
-.
2. n ,
-. .
3. 2n1 , n ?
-
1 - 54
- .
1.16. n ,
( n ).
3 :
6 = 1 + 2 + 3,
28 = 1 + 2 + 4 + 7 + 14,
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248.
:
8128, 33550336, 8589869056,
, ( n = 1,
2, 3, ), 5-
. :
. () 2p1 , 2
p1.(2
p1) .
n -
: pi n
( 10 2, 3, 5, 7, 13, 17, 19, 31, 61, 89). ,
n,
. ,
: 2
. number[]:
.
: number[k-1] ( k ),
number[k-2] .. k- number[0].
, number[], :
i = 0; number[i]++;
while (10 == number[i]) { number[i] = 0; number[++i]++; }
if (i == k) k++;
2,
, .. 9, -
, while(10 == number[i]), .
, :
unsigned i, carry = 0, temp;
for (i = 0; i < k; i++) {
temp = number[i] * 2 + carry;
number[i] = temp % 10;
carry = temp / 10;
}
if (carry > 0) number[k++] = carry;
, 10 , -
mPrimes[]:
#include
#define MN 10
unsigned mPrimes[MN] = { 2, 3, 5, 7, 13, 17, 19, 31, 61, 89 };
unsigned k, number[200];
void doubleN(void)
{ unsigned i, carry = 0, temp;
-
1 - 55
for (i = 0; i < k; i++) {
temp = number[i] * 2 + carry;
number[i] = temp % 10;
carry = temp / 10;
}
if (carry > 0)
number[k++] = carry;
}
void print(void)
{
unsigned i;
for (i = k; i > 0; i--)
printf("%u", number[i-1]);
printf("\n");
}
void perfect(unsigned s, unsigned m)
{
unsigned i;
k = 1; number[0] = 1;
for (i = 0; i < m; i++)
doubleN(); /* 2^i */
number[0]--; /* {2,4,8,6} */
for (i = 0; i < m - 1; i++)
doubleN();
printf("%2u-o = ", s);
print(); /* */
}
int main(void) {
unsigned i;
for (i = 1; i
-
1 - 56
2. , ,
( 1 ) 2. ?
1.1.5. , .
1.17. n- .
k-
:
)(1)...1(
)1)...(1.(
kk
knnnC
k
n
n
k
, n
kC
k
n -
, n,
. .
n , (*) :
(**))!(!
!
knk
nC
k
n
n
k
, ,
n k ( 1.3.3.) (?).
, (a+b)n, -
:
n
i
iinnnnn bai
nba
n
nba
nba
nba
0
0110 ...10
, [Knuth-
1/1968]. .
1.1.5. n
kC , 0 k n < 10.
n
0
n
1
n
2
n
3
n
4
n
5
n
6
n
7
n
8
n
9
n
0 1 0 0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0 0 0
2 1 2 1 0 0 0 0 0 0 0
3 1 3 3 1 0 0 0 0 0 0
4 1 4 6 4 1 0 0 0 0 0
5 1 5 10 10 5 1 0 0 0 0
6 1 6 15 20 15 6 1 0 0 0
7 1 7 21 35 35 21 7 1 0 0
8 1 8 28 56 70 56 28 8 1 0
9 1 9 36 84 126 126 84 36 9 1
1.1.5. .
, --
1.1.5., :
-
1 - 57
10
n
nn (1)
kn
n
k
n (2)
1
11
k
n
k
n
k
n (3)
1.1.5. - ,
:
n = 0 1
n = 1 1 1
n = 2 1 2 1
n = 3 1 3 3 1
n = 4 1 4 6 4 1
n = 5 1 5 10 10 5 1
...
1.1.5. .
1 ( (1) (2)),
( (3)). n-
, (n1)- .
k
nC
n
k
, n- k-
n
kC . , i
i1, .
:
lastLine[], n k n
kC
.
#include
/* */
#define MAXN 1000
const unsigned n = 7;
const unsigned k = 3;
unsigned long lastLine[MAXN + 1];
int main(void) {
unsigned i, j;
lastLine[0] = 1;
for (i = 1; i = 1; j--)
lastLine[j] += lastLine[j - 1];
}
printf("C(%u,%u) = %lu\n", n, k, lastLine[k]);
return 0;
}
pascalt.c
-
1 - 58
, (*)
.
(**) n! k!(nk)!,
, : n = 100 k =
2 100! 2!.98! ( 150 ), 100
2C 4950.
2 n
kC ( )
1) 7
3C . (*) -
, .
: 7! = 1.2.3...7 =
1.2.3.22.5.(2.3).7 = 2
4.3
2.5
1.7
1.
2) : 3!.(73)! = 1.2.3. 1.2.3.22 = 2
4.3
2.
3) : 1
.75
.32
.7.5.32 11
24
1124
.
4) : 5
1.7
1 = 35.
2.
#include
#define MAXN 500
unsigned long n = 7;
unsigned long k = 3;
unsigned long pN, primes[MAXN], counts[MAXN];
void modify(unsigned long x, unsigned how)
{ unsigned i;
for (i = 0; i < pN; i++)
if (x == primes[i]) {
counts[i] += how;
return;
}
counts[pN] = how;
primes[pN++] = x;
}
void solve(unsigned long start, unsigned long end, unsigned long inc)
{ unsigned long prime, mul, how, i;
for (i = start; i 0)
modify(prime, inc * how);
prime++;
}
}
}
unsigned long calc(void)
{ unsigned i, j;
-
1 - 59
unsigned long result = 1;
for (i = 0; i < pN; i++)
for (j = 0; j < counts[i]; j++)
result *= primes[i];
return result;
}
int main(void) {
printf("C(%lu,%lu)= ", n, k);
pN = 0;
if (n - k < k) k = n - k;
solve(n - k + 1, n, 1); /* (nk+1),...,n */
solve(1, k, -1); /* 1,...,k */
printf("%lu\n", calc());
return 0;
}
cnk.c
( , ..
)
n
kC , , ,
.
: "" -
:
kn
n
k
n
, .
:
1. (1), (2) (3), -
. , (1) :
1!0!
!
)!(!
!
1!!0
!
)!0(!0
!
0
0
n
n
nnn
nC
n
n
n
n
n
nC
n
n
n
n
2. (1), (2) (3).
3. 1 (pascalt.c) n
kC
lastLine[] n+1 , - n,
. : ,
, 1 i, 1 k,
- . , k
n, (2) n
knC , n
kC .
1.1.6.
-
.
, - -
-
1 - 60
.
0, 1, 2, 3, 4, 5, 6, 7, 8 9, (
,
- , .).
, , .
( 10 ). -
, ( 0 1) ( -
) . , p p < 0,
.
, -
.
0 1. 11(10) 1011(2) (
, .).
16 . ,
0 9 , A, B, C, D, E
F, 10, 11, 12, 13, 14 15. 254(10)
FE(16). , -
e = 2,718281828... ( .
an
n
n
1
1 n). -
.
e (
),
3 2.
, 3 - e.
. -
0 0 V, 1 5 V. -
. -
, , ,
1960 . , 1, 0 1. , 16 2 (16=2
4).
0 15 4 ( 0 1). --
8 .
, 0 255, .. 256 .
256 = 162,
.
- (4 ),
,
. - ,
10101000110111(2) . :
10 | 1010 | 0011 | 0111
: 0010 | 1010 | 0011 | 0111
2A37(16). ,
( ). -
- . ,
. , 153 ,
-
1 - 61
6. , 1, 5 3, ,
3, 3 , -
0, 1 2.
- , -, . , .. -
, . -
123 3 3, 34 30. -
( 1.1.7.),
. - : -
. -. -
, -
p, p . -
anan-1...a0 (p), i (1 i n) .
:
A = anpn + an-1p
n-1 + ... a1p + a0
,
-.
:
1. 0 1?
2. 17 17 : 2; 8; 16.
3. 17 17 2; 8; 16.
4. ,
: 111, 110100, 1110100101, 10010101, 10101010101 10111110101.
5. , -
: 11, 11001, 1010101, 111111, 1010101000, 10101101000 11010111000.
6. ?
7. 17 17 .
- p-
,
p- : A p
, A 0, ,
(?). 29
( ):
29:2=14:2=7:2=3:2=1:2=0
1 0 1 1 1
: 29(10) = 11101(2). convert()
: char getChar(char n) /* , n */
{ return (n < 10) ? n + '0' : n + 'A' - 10; }
void reverse(char *pch)
{ char *pEnd;
for (pEnd = pch + strlen(pch) - 1; pch < pEnd; pch++, pEnd--) {
char c = *pch;
*pch = *pEnd;
*pEnd = c;
-
1 - 62
}
}
void convert(char *rslt, unsigned long n, unsigned char base)
/* n (n >= 0) */
/* base */
{ char *saveRslt = rslt;
while (n > 0) {
*rslt++ = getChar((char)(n % base));
n /= base;
}
*rslt = '\0';
reverse(saveRslt);
}
base.c
- 1, ,
p.
A p- : -
A p, . -
0,125 :
0,125.2=0,25.2=0,5.2=1,0
0,125(10) = 0,001(2). A
p- () . -
.
convertLessThan1() A (0 < 1) cnt
, . void convertLessThan1(char *rslt,
double n,
unsigned char base,
unsigned char cnt)
/* 0 1 0 <
1, ,
, . convertReal(): void convertReal(char *rslt, double n,
unsigned char base, unsigned char cnt)
/* n base */
{ double integer, fraction;
-
1 - 63
/* */
if (n < 0) {
*rslt++ = '-';
n = -n;
}
/* */
fraction = modf(n, &integer);
/* */
convert(rslt, (unsigned long)integer, base);
/* ( ...) */
if ('\0' == *rslt) *rslt++ = '0';
else rslt += strlen(rslt);
*rslt++ = '.';
/* */
convertLessThan1(rslt, fraction, base, cnt);
if ('\0' == *rslt) {
*rslt++ = '0';
*rslt = '\0';
}
}
base.c
:
1. 157 : 3;5;7;14.
2. 0,321 : 3;5;7;14.
3. 157,321 : 3;5;7;14.
4. -
p- .
5.
p- .
- p- .
p- -
A,
. , , 12734(8), -
: 12734(8) = 1.8
4 + 2.83 + 7.82 + 3.8 + 4 = 5596(10)
, 10 . -
, 8,
. - ,
n- n
. (1) (2).
(1) Pn(x) = a0xn+a1x
n-1+...+an-1x+an
(2) Pn(x) = an+x(an-1+x(an-2+...+x(a2+x(a1+xa0))...))
calculate():
-
1 - 64
char getValue(char c) /* c */
{ return (c >= '0' && c = 0 */
{ unsigned long result;
for (result = 0; '\0' != *numb; num