1 00:00:00,000 --> 00:00:10,216 >> [MUSIC Playing] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA Chan: Most hadd kezelni mohó. 3 00:00:12,060 --> 00:00:14,390 Mondjuk te egy pénztáros, és kell, hogy az ügyfél a 4 00:00:14,390 --> 00:00:16,309 bizonyos mennyiségű változás. 5 00:00:16,309 --> 00:00:18,820 Nos, ha volt egy kapzsi pénztáros, azt szeretné, hogy az összes 6 00:00:18,820 --> 00:00:20,040 Az érmék magad. 7 00:00:20,040 --> 00:00:24,310 Tehát azt, hogy az ügyfél a változás felhasználásával néhány érme lehetséges. 8 00:00:24,310 --> 00:00:27,640 >> Az Ön feladata e p-set, hogy végre Greedy, egy program, amely 9 00:00:27,640 --> 00:00:30,530 kiszámítja a minimális érmék használt, hogy minden 10 00:00:30,530 --> 00:00:31,940 adott mennyiségű változás. 11 00:00:31,940 --> 00:00:35,660 Mielőtt búvárkodás a programozási koncepciók és C szintaxist Greedy, 12 00:00:35,660 --> 00:00:38,410 nézzük először beszél a Greedy programot, hátha 13 00:00:38,410 --> 00:00:40,570 azonosítani egy algoritmus. 14 00:00:40,570 --> 00:00:42,560 Ne feledje, hogy az algoritmus csak egy sor 15 00:00:42,560 --> 00:00:44,680 utasítások a problémák megoldására. 16 00:00:44,680 --> 00:00:48,060 Az algoritmus a Greedy ez csak egy beállított logikai szabályokat és lépéseket, amelyek 17 00:00:48,060 --> 00:00:49,000 tudjuk követni. 18 00:00:49,000 --> 00:00:52,510 És mindig így a minimum számú érmét szükséges. 19 00:00:52,510 --> 00:00:54,340 >> Az első dolog, amit meg kell tudja, hogy mennyi változás 20 00:00:54,340 --> 00:00:55,710 áll fenn az ügyfél. 21 00:00:55,710 --> 00:00:58,560 Ebben a példában, mondjuk 0,32 $. 22 00:00:58,560 --> 00:01:00,880 Nagyon sok módja van, hogy újra 0,32 $. 23 00:01:00,880 --> 00:01:03,950 Lehet használni, például, 32. fillérekért. 24 00:01:03,950 --> 00:01:07,560 Vagy, ha te egy kicsit greedier a választotta a pénzeteket, akkor használja 25 00:01:07,560 --> 00:01:11,730 öt érmét helyett 32 azáltal, hogy az ügyfél három Dimes - 26 00:01:11,730 --> 00:01:14,690 0,10 $ minden -, valamint két fillérekért - 0,01 $ minden. 27 00:01:14,690 --> 00:01:16,830 >> De vajon mi a jobb, mint öt érmét? 28 00:01:16,830 --> 00:01:18,990 Lehetünk még greedier? 29 00:01:18,990 --> 00:01:20,410 Nagy valószínűséggel. 30 00:01:20,410 --> 00:01:23,360 >> Nézzük tovább séta A Greedy programot, és nézd meg. 31 00:01:23,360 --> 00:01:27,090 Ha a végső cél az, hogy egy pár érmét lehetséges, akkor ez lenne a leginkább 32 00:01:27,090 --> 00:01:29,680 körültekintő használata a legnagyobb lehetséges érméket. 33 00:01:29,680 --> 00:01:32,410 Inkább ad negyede Back - 0,25 $ minden - 34 00:01:32,410 --> 00:01:33,640 mint öt nickels - 35 00:01:33,640 --> 00:01:34,940 0,05 $ minden. 36 00:01:34,940 --> 00:01:38,260 Így talán az irányító szabály Greedy lehet, hogy mindig a 37 00:01:38,260 --> 00:01:40,590 legnagyobb érme lehetséges. 38 00:01:40,590 --> 00:01:43,640 Out of negyedévben, Dimes, Nickels, és fillérekért, a 39 00:01:43,640 --> 00:01:44,830 legnagyobb érme a negyedévben. 40 00:01:44,830 --> 00:01:47,690 Tehát megpróbáljuk használni őket először. 41 00:01:47,690 --> 00:01:49,270 >> Vissza a 0,32 $. 42 00:01:49,270 --> 00:01:52,455 Használható-negyed, hogy az ügyfél 0,32 $? 43 00:01:52,455 --> 00:01:52,930 Igen. 44 00:01:52,930 --> 00:01:55,530 Ez teret minket 0,07 $ maradt. 45 00:01:55,530 --> 00:01:57,440 >> Használhatunk egy negyed? 46 00:01:57,440 --> 00:02:00,100 Nem, mert a 25 nagyobb, mint hét. 47 00:02:00,100 --> 00:02:03,470 Nem akarjuk, hogy az ügyfél többet, mint mi tartozunk nekik. 48 00:02:03,470 --> 00:02:04,190 >> Rendben van. 49 00:02:04,190 --> 00:02:07,370 Most, hogy már kimerítette a negyedévben, menjünk tovább a következő legnagyobb 50 00:02:07,370 --> 00:02:09,090 érme, az érmét. 51 00:02:09,090 --> 00:02:12,400 Tudunk egy érmét, hogy a ügyfél a 0,07 $ vissza? 52 00:02:12,400 --> 00:02:15,100 Nem, mivel a 10 nagyobb, mint hét. 53 00:02:15,100 --> 00:02:18,400 >> Tehát akkor a következő legnagyobb érme elérhető számunkra a nikkel. 54 00:02:18,400 --> 00:02:19,590 Használhatjuk a nikkel? 55 00:02:19,590 --> 00:02:20,250 Igen. 56 00:02:20,250 --> 00:02:22,940 És akkor mi lenne 0,02 $ marad. 57 00:02:22,940 --> 00:02:24,910 >> Azt nem tudja használni a nikkel return $ 0,02. 58 00:02:24,910 --> 00:02:29,510 Így költözött az utolsó érme rendelkezésünkre áll - a penny. 59 00:02:29,510 --> 00:02:33,090 És miután két pennyt, mi lenne maradt nulla cent, ami azt jelenti, hogy 60 00:02:33,090 --> 00:02:36,350 már sikeresen fizetik vissza a felhasználó változásuk tartozott 61 00:02:36,350 --> 00:02:37,830 amelyek csak négy érmét - 62 00:02:37,830 --> 00:02:40,410 egynegyede, egy nikkel, és két fillérekért. 63 00:02:40,410 --> 00:02:43,880 >> Futtathatja a személyzet megoldás, hogy ha az irányító a szabály és a folyamat adott 64 00:02:43,880 --> 00:02:44,770 mi a helyes válasz. 65 00:02:44,770 --> 00:02:47,820 A legtöbb probléma készletek, akkor képes lesz arra, futtatni a személyzet megoldás, hogy milyen 66 00:02:47,820 --> 00:02:49,900 Saját program működik. 67 00:02:49,900 --> 00:02:53,390 És adott utasítások lehet a probléma beállítja szemüveg. 68 00:02:53,390 --> 00:02:57,180 >> Amint fut a személyzet megoldás, kéri tőlünk, hogy mennyi változás tartozott 69 00:02:57,180 --> 00:02:59,790 ne feledje, hogy kéri a összege dollárban. 70 00:02:59,790 --> 00:03:03,580 Mi input $ 0,32, 0,32. 71 00:03:03,580 --> 00:03:06,830 Azt mondja, hogy a négy érmék tartozott, összhangban van a válasz. 72 00:03:06,830 --> 00:03:08,160 Fantasztikus. 73 00:03:08,160 --> 00:03:10,210 >> Tehát most kezdjük keres a végrehajtás 74 00:03:10,210 --> 00:03:11,780 A mohó algoritmus. 75 00:03:11,780 --> 00:03:13,410 Tudjuk, hogy egy-két dolgot. 76 00:03:13,410 --> 00:03:17,280 Az egyik, hogy mi kell, hogy jelezzen a felhasználó olyan mértékű változás. 77 00:03:17,280 --> 00:03:20,830 >> Kettő, hogy mi szeretnénk követni a irányadó szabály, hogy mindig a 78 00:03:20,830 --> 00:03:22,990 legnagyobb érme lehetséges. 79 00:03:22,990 --> 00:03:26,370 És a harmadik, hogy meg kell nyomon követni hány érmét használjuk. 80 00:03:26,370 --> 00:03:30,040 Mert végül, meg kell nyomtatni száma az érmék, hogy mi is. 81 00:03:30,040 --> 00:03:33,270 >> Először is, a felhasználó megkérdezése összegben a változás. 82 00:03:33,270 --> 00:03:36,880 Amikor foglalkozik felhasználótól, hogy meg arról, hogy úgy gondolja, minden a 83 00:03:36,880 --> 00:03:40,010 követelmények a bemenet, és csak akkor bevitel elfogadásához, amely megfelel azok 84 00:03:40,010 --> 00:03:40,880 követelményeket. 85 00:03:40,880 --> 00:03:44,100 Ebben az esetben szeretnénk foglalkozni a pénzbeli értékét dollárban. 86 00:03:44,100 --> 00:03:48,230 >> A getFloat és getInt funkció biztosítja, hogy a bemenet numerikus. 87 00:03:48,230 --> 00:03:51,700 De a felhasználó képes input negatív számértékek. 88 00:03:51,700 --> 00:03:56,260 Úgy emlékszem, hogy csak a nem-negatív bemenet, amely magában foglalja az összes negatív 89 00:03:56,260 --> 00:03:58,370 számok és a nulla. 90 00:03:58,370 --> 00:04:00,260 >> Ebben az esetben, a bemeneti kell egy úszó. 91 00:04:00,260 --> 00:04:01,960 Más szóval, egy decimális szám. 92 00:04:01,960 --> 00:04:06,000 Mivel a probléma meg spec igényel , hogy kérjen be dollárban. 93 00:04:06,000 --> 00:04:09,540 >> De a C, lebegőpontos értékek nem képviselteti magát pontosan. 94 00:04:09,540 --> 00:04:12,490 Mert van egy véges számú bitek, amellyel 95 00:04:12,490 --> 00:04:14,870 képviselnek végtelen értékeket. 96 00:04:14,870 --> 00:04:16,860 Vegye ki a szám 0,1. 97 00:04:16,860 --> 00:04:21,140 Ha megkérdezném, hogy írjon 0,1- kezét, hogy a századik tizedes 98 00:04:21,140 --> 00:04:24,380 akkor írj egy 1, majd 99 nullák. 99 00:04:24,380 --> 00:04:27,080 Azt várná, hogy a számítógép is nyomtassa ki pontosan ugyanaz a dolog 100 00:04:27,080 --> 00:04:28,330 ha azt kérte, hogy. 101 00:04:28,330 --> 00:04:30,320 >> Akkor lássuk, mit csinál. 102 00:04:30,320 --> 00:04:33,150 Én felülvizsgálja nyomtatás értékek felé a végén ez a séta. 103 00:04:33,150 --> 00:04:39,270 Most láthatjuk, hogy f%-a helyőrző helyett lebegőpontos. 104 00:04:39,270 --> 00:04:44,530 De mi határozza meg előre, hogy mi szeretnénk 100 tizedes jelenik meg, majd az új 105 00:04:44,530 --> 00:04:46,506 sor szebb formázás. 106 00:04:46,506 --> 00:04:51,710 >> Után a húr, úgy döntünk, 0,1, mint a úszó, hogy szeretnénk kinyomtatni. 107 00:04:51,710 --> 00:04:56,680 És az eredmény, egy, ezt követi néhány nullák, de aztán egy 108 00:04:56,680 --> 00:04:57,980 csomó számot. 109 00:04:57,980 --> 00:05:00,470 Természetesen nem a várt módon. 110 00:05:00,470 --> 00:05:03,490 >> A lebegőpontos pontatlanság lehet bevezetni kerekítési hibák be a 111 00:05:03,490 --> 00:05:07,330 számításokat, hogy lesz mindenképpen el akarja kerülni. 112 00:05:07,330 --> 00:05:10,900 Ha szeretne többet látni példákat, akkor letölthető imprecision.ce a 113 00:05:10,900 --> 00:05:14,880 séta kódot, amely egy egyszerű program, amely kéri úszó és kinyomtatja 114 00:05:14,880 --> 00:05:17,550 vissza a századik tizedes. 115 00:05:17,550 --> 00:05:20,340 Természetesen, ha meg akarja mutatni több vagy kevesebb tizedesjegy 116 00:05:20,340 --> 00:05:22,410 meg tudod változtatni magát. 117 00:05:22,410 --> 00:05:25,740 >> Mint látni fogod, bár ez a különbség a két kicsi, ha kap 118 00:05:25,740 --> 00:05:30,460 kell szorozni, és hozzátéve, úszók, hogy a eltérés végül összeadódnak. 119 00:05:30,460 --> 00:05:31,790 Vissza a Greedy. 120 00:05:31,790 --> 00:05:34,870 Azt akarja, hogy ne a kerekítési hibák by foglalkozó egész számokkal. 121 00:05:34,870 --> 00:05:38,090 Így aztán kapunk érvényes bemenet a felhasználó, nézzük konvertálni a 122 00:05:38,090 --> 00:05:39,550 dollár értéket cent. 123 00:05:39,550 --> 00:05:43,420 >> Szellemileg, mi ezt megszorozzuk A dollár értéke 100-zal. 124 00:05:43,420 --> 00:05:46,400 De ne felejtsd el, mert a lebegőpontos pontatlanság, azt akarjuk, hogy 125 00:05:46,400 --> 00:05:48,580 arról, hogy mi a megfelelő értéket. 126 00:05:48,580 --> 00:05:52,510 Megszorozzuk 100 lényegében mozogni A tizedes két szünetet 127 00:05:52,510 --> 00:05:56,640 jobb, darabolás le vagy csonkolt semmit utána. 128 00:05:56,640 --> 00:05:59,430 >> Ha a játék körül néhány további példákat, látni fogja, hogy nem fogsz 129 00:05:59,430 --> 00:06:02,980 Mindig megvan a megfelelő számot, ha használja ezt a módszert csonkolása. 130 00:06:02,980 --> 00:06:10,011 Például, a nyomtatott 100 12.59 tizedes, hogy megadja neked 131 00:06:10,011 --> 00:06:14,050 12,5899, et cetera. 132 00:06:14,050 --> 00:06:18,460 Meg lennék 12,58 ha csonka, nem 12.59, mint amire szüksége van. 133 00:06:18,460 --> 00:06:21,130 >> Ehelyett, a legjobb, ha kerek A szám első. 134 00:06:21,130 --> 00:06:23,930 Szerencsére a C jön a nevű függvényt Round. 135 00:06:23,930 --> 00:06:25,040 Ez a matematikai könyvtárral. 136 00:06:25,040 --> 00:06:28,540 >> Ha meg szeretné tudni, hogyan kell használni Round, akkor hozza fel a kézi vagy 137 00:06:28,540 --> 00:06:30,550 man oldal ezt a funkciót. 138 00:06:30,550 --> 00:06:35,510 Ugye ezt írja az ember, rövid kézi, majd a funkció, amelyet 139 00:06:35,510 --> 00:06:36,620 akarom nézni. 140 00:06:36,620 --> 00:06:42,280 Így gépelés férfi körül a terminál parancs hozza létre a kézi. 141 00:06:42,280 --> 00:06:44,790 >> Lehet, hogy egy kicsit nehéz megfejteni, de végül akkor 142 00:06:44,790 --> 00:06:45,660 kap a nyitjára. 143 00:06:45,660 --> 00:06:48,290 A Man megmutatja, mi a funkciója csinál, majd néhány 144 00:06:48,290 --> 00:06:50,170 lehetséges felhasználásáról. 145 00:06:50,170 --> 00:06:52,340 Elmegyek, hogy tárja fel a man oldalt Round. 146 00:06:52,340 --> 00:06:55,960 De tudom, hogy tudod használni, hogy kerek az érték alatt konverzió 147 00:06:55,960 --> 00:06:57,180 dollár cent. 148 00:06:57,180 --> 00:06:59,690 >> Kerek kapsz vissza egy számot Az adattípus dupla. 149 00:06:59,690 --> 00:07:03,810 És akkor konvertálni vagy öntött azt egy int utána. 150 00:07:03,810 --> 00:07:04,980 Remek. 151 00:07:04,980 --> 00:07:08,120 Mára már kéri a felhasználó a pénzösszeg, és a 152 00:07:08,120 --> 00:07:09,520 át azt cent. 153 00:07:09,520 --> 00:07:12,410 Most végre egy algoritmust hogy mindig használja a 154 00:07:12,410 --> 00:07:14,640 legnagyobb rendelkezésre álló érmék. 155 00:07:14,640 --> 00:07:17,790 >> Ne feledje, hogy van több módon végrehajtani Greedy, mint 156 00:07:17,790 --> 00:07:21,200 van több módon megközelíteni Minden számítógép-tudomány problémát. 157 00:07:21,200 --> 00:07:24,040 Megtalálni a legelegánsabb módja, ez a vicces rész. 158 00:07:24,040 --> 00:07:27,030 Ezekben p-hoz, ha a program nem egyezik meg pontosan a 159 00:07:27,030 --> 00:07:29,190 magyarázat a walkthroughs, ez rendben van. 160 00:07:29,190 --> 00:07:32,870 De csak arról, hogy halad ellenőrzése 50, megfelel az összes 161 00:07:32,870 --> 00:07:36,270 követelmények alkotják az előírásoknak, és hogy megvizsgálja, hogy a 162 00:07:36,270 --> 00:07:37,670 megközelítés jó design. 163 00:07:37,670 --> 00:07:39,750 >> Más szóval, mennyire hatékony ez? 164 00:07:39,750 --> 00:07:44,400 Például, nem beírt ismétlődő kód vonalak használata helyett egy hurkot? 165 00:07:44,400 --> 00:07:47,580 Írás kód jobb tervezési fog jön a tapasztalat, amit elért 166 00:07:47,580 --> 00:07:49,192 át a kurzus. 167 00:07:49,192 --> 00:07:52,350 >> Ehhez a séta, megyek át Két módon lehet használni, hogy 168 00:07:52,350 --> 00:07:53,540 teljes mohó. 169 00:07:53,540 --> 00:07:57,160 Az első módszer egy olyan módszer segítségével hurkok és kivonás. 170 00:07:57,160 --> 00:08:00,050 Korábban, amikor beszélgettünk a Greedy folyamat, folyamatosan 171 00:08:00,050 --> 00:08:03,220 ellenőrizte, hogy mi jönne egy negyedévben, és használt negyede, míg a 172 00:08:03,220 --> 00:08:05,670 érték fennmaradó kevesebb, mint $ 0.25. 173 00:08:05,670 --> 00:08:07,990 >> Ez fordítja jól a while ciklus szerkezete. 174 00:08:07,990 --> 00:08:11,550 Miközben továbbra is használhatja egy negyed, egy. 175 00:08:11,550 --> 00:08:15,900 Ez a while ciklus kell végrehajtani, amíg a fennmaradó érték nagyobb, mint 176 00:08:15,900 --> 00:08:18,240 vagy egyenlő egy negyed hüvelyk os értékét. 177 00:08:18,240 --> 00:08:20,970 Ez azt jelenti, hogy akkor is szeretné nyomon követheti a fennmaradó készpénz 178 00:08:20,970 --> 00:08:24,570 érték, és frissíti azt minden idő, hogy egy pénzérme. 179 00:08:24,570 --> 00:08:28,350 >> Ne feledje, hogy a végén, a kimenet az érmék számának használni. 180 00:08:28,350 --> 00:08:32,400 Így egy másik dolog, hogy nyomon követni az számát érmék, hogy használja. 181 00:08:32,400 --> 00:08:35,450 Lehet nyomon követni ezeket a jól megnevezett változókra. 182 00:08:35,450 --> 00:08:39,730 És a testület a loop lenne egy frissítést, hogy azokat a változókat. 183 00:08:39,730 --> 00:08:43,400 Ha a hurok negyedévben befejeződött, használhat egy hasonlót a Dimes, 184 00:08:43,400 --> 00:08:47,180 és így tovább és így tovább, amíg meg már vissza az összes pénzt. 185 00:08:47,180 --> 00:08:50,640 >> Írtam néhány pszeudo-kódot itt segítenek elképzelni, hogy milyen a 186 00:08:50,640 --> 00:08:55,080 folyamat beszéltünk is lefordítani, hogy C. Amint látod itt, én még mindig használja 187 00:08:55,080 --> 00:08:55,760 Angol szavakat. 188 00:08:55,760 --> 00:08:56,830 Ez nem a C még. 189 00:08:56,830 --> 00:08:58,590 De én már elkezdtem francia dolgokat. 190 00:08:58,590 --> 00:09:00,690 Tettem teremt a belső terekben a zárójelben. 191 00:09:00,690 --> 00:09:03,710 Ez kezd nézni egy kicsit Kicsit olyan, mint programkód. 192 00:09:03,710 --> 00:09:06,410 >> Pszeudo-kód egy nagyszerű módja belekezdenie. 193 00:09:06,410 --> 00:09:08,810 Képzeld el a kódot, mielőtt felnézel szintaxis. 194 00:09:08,810 --> 00:09:12,570 Mivel gyakran a legnehezebb az egészben a probléma valóban megértenék, hogy mit 195 00:09:12,570 --> 00:09:14,450 Pontosan meg kell csinálni. 196 00:09:14,450 --> 00:09:17,490 Ha írsz, hogy le, akkor ez egy sokkal könnyebb felnéz funkciók 197 00:09:17,490 --> 00:09:20,390 és szintaxis jellemző a vonal a pszeudo-kód 198 00:09:20,390 --> 00:09:23,760 >> Ne feledje, hogy ez nem lehet azonos a fajta csontváz 199 00:09:23,760 --> 00:09:25,560 A kód, amit írsz. 200 00:09:25,560 --> 00:09:27,640 Mindig vannak optimalizálás kell tenni. 201 00:09:27,640 --> 00:09:31,250 És különösen az én pszeudo-kód Itt nézd meg, hogy a helyszínen is. 202 00:09:31,250 --> 00:09:33,380 >> De alapvetően a folyamat és a gondolkodás 203 00:09:33,380 --> 00:09:35,250 ugyanolyan megbeszéltük. 204 00:09:35,250 --> 00:09:38,350 Az első sor azt mondja számunkra, hogy egy bizonyos összeget dollárban. 205 00:09:38,350 --> 00:09:40,960 És a másik azt mondja, hogy átalakítani, hogy cent. 206 00:09:40,960 --> 00:09:45,640 >> És aztán, míg a negyedek lehet használni, akkor szeretnénk növelni az érme szám és 207 00:09:45,640 --> 00:09:47,200 csökkenti a készpénz mennyiségét. 208 00:09:47,200 --> 00:09:49,880 Ugyanez vonatkozik Dimes, Nickels, és fillérekért. 209 00:09:49,880 --> 00:09:53,230 És végül, mondd el a felhasználó hány érmét szoktunk. 210 00:09:53,230 --> 00:09:53,750 >> Remek. 211 00:09:53,750 --> 00:09:55,680 Így arra a következtetésre jutott, hogy a hurok módszer. 212 00:09:55,680 --> 00:09:59,720 Most beszéljünk a moduláris módszer, ami több, mint a megosztottság. 213 00:09:59,720 --> 00:10:03,630 >> Mindannyian ismerjük a plusz, mínusz, szaporodnak, és oszd üzemeltetők 214 00:10:03,630 --> 00:10:05,030 elérhető számunkra. 215 00:10:05,030 --> 00:10:09,060 Mind a négy C-e, hanem A modulo operátor által képviselt 216 00:10:09,060 --> 00:10:10,640 százalék jel. 217 00:10:10,640 --> 00:10:11,940 Modulo nagyon szép. 218 00:10:11,940 --> 00:10:14,880 Ez adja a fennmaradó részt elosztjuk a két számot. 219 00:10:14,880 --> 00:10:19,910 >> Ne feledje, a hosszú divízió üzenetet, amikor osztja, mondjuk, 74 három? 220 00:10:19,910 --> 00:10:23,510 Kezdve a tízes helyen, akkor tudják, hogy a 3 megy hét 221 00:10:23,510 --> 00:10:27,620 kétszer, hogy a hat és fennmaradó egy. 222 00:10:27,620 --> 00:10:31,870 Az ember azt írni két a tetején, majd a kivonni 6 hét, melyen több mint 223 00:10:31,870 --> 00:10:34,980 a fennmaradó 14 ismételje meg a folyamatot. 224 00:10:34,980 --> 00:10:39,410 >> Three megy 14-négyszer hogy a 12, a maradék kettő. 225 00:10:39,410 --> 00:10:40,930 És a kettő nem jár át többé. 226 00:10:40,930 --> 00:10:44,170 Tehát két maradna a alsó, mint a többi. 227 00:10:44,170 --> 00:10:46,800 >> És ez az, amit modulo ad, akkor ez a szám az alján. 228 00:10:46,800 --> 00:10:49,790 Tehát 74 modulo három adna nektek. 229 00:10:49,790 --> 00:10:52,980 És 10 modulo két, jól, hogy adná meg nulla. 230 00:10:52,980 --> 00:10:56,500 Mivel nincs olyan maradék ha osztani 10-kettő. 231 00:10:56,500 --> 00:11:00,190 >> Six modulo öt, illetve öt megy hat egyszerre. 232 00:11:00,190 --> 00:11:01,830 És akkor azt egy maradt. 233 00:11:01,830 --> 00:11:04,720 Tehát hat modulo öt egy. 234 00:11:04,720 --> 00:11:07,950 >> Akkor, ha van hét modulo kilenc, azt, hogy a hét. 235 00:11:07,950 --> 00:11:09,840 Mivel a kilenc nagyobb, mint hét. 236 00:11:09,840 --> 00:11:15,020 Tehát ez nem osztja meg minden hét, így hét, mint a válasz. 237 00:11:15,020 --> 00:11:18,340 >> Ha úgy gondolja, a modulo egy kicsit, ne feledjük, hogy ez adja az 238 00:11:18,340 --> 00:11:21,020 fennmaradó miután osztani valamit. 239 00:11:21,020 --> 00:11:23,620 Gondolja át, hogyan lehet, hogy tudja használni a mohó. 240 00:11:23,620 --> 00:11:27,620 Tegyük fel, hogy a felhasználó kéri a 400,11 $. 241 00:11:27,620 --> 00:11:30,470 Mi a módja annak, hogy kitaláljuk, hogy hány negyedévben kell, anélkül, hogy 242 00:11:30,470 --> 00:11:32,360 számít mindegyik? 243 00:11:32,360 --> 00:11:37,480 >> Ha kitaláljuk, hogy sok helyen tudod használni, hogy a 400,11 $, mennyit 244 00:11:37,480 --> 00:11:38,880 addig marad? 245 00:11:38,880 --> 00:11:42,110 Talán kombinációja között itt modulo és osztás jönne 246 00:11:42,110 --> 00:11:46,200 praktikus, hogy kapsz egy hűvös, elegáns megközelíteni a Greedy problémát. 247 00:11:46,200 --> 00:11:49,030 De ne feledjük, hogy az irányító a szabály továbbra is érvényes. 248 00:11:49,030 --> 00:11:51,610 Mindig a legnagyobb érme lehetséges. 249 00:11:51,610 --> 00:11:55,340 >> Miután végzett a számítás, hogy milyen sok érme használható, az utolsó lépés 250 00:11:55,340 --> 00:11:57,930 hogy nyomtassa ki a számát érmék, hogy számítani. 251 00:11:57,930 --> 00:12:01,610 Eddig már használja a printf funkció kizárólag a szálakat. 252 00:12:01,610 --> 00:12:05,200 De ha azt szeretné, hogy nyomtassa ki az A, vagy a akármilyen típusú adat, hogy a tárolt 253 00:12:05,200 --> 00:12:09,200 egy változó, van, hogy jelzi hogy egy helyőrző. 254 00:12:09,200 --> 00:12:12,400 >> Itt már bele néhány tipp hogyan kell kinyomtatni értékeket. 255 00:12:12,400 --> 00:12:16,390 Ha van egy egész szám, akkor lenne írja meg karakterlánc a% d, mint a 256 00:12:16,390 --> 00:12:17,450 helyőrző. 257 00:12:17,450 --> 00:12:20,170 Miután a záró idézet jelet, adjon meg egy vessző. 258 00:12:20,170 --> 00:12:24,530 És aztán az egész, hogy majd helyettesítheti a% d kinyomtatáskor. 259 00:12:24,530 --> 00:12:27,150 >> Tehát megjelenítése után a szám érmék használt, akkor 260 00:12:27,150 --> 00:12:28,500 végzett mohó. 261 00:12:28,500 --> 00:12:32,000 Ügyeljen arra, hogy ellenőrizze az összes sarokba esetben, rendet a stílus egy kicsit, és máris 262 00:12:32,000 --> 00:12:33,350 minden beállítva, hogy nyújtson be. 263 00:12:33,350 --> 00:12:36,000 Végén ez a probléma meg, akkor jobban ismerik a CS50 264 00:12:36,000 --> 00:12:39,940 készüléket, a terminál, és a hurok struktúrák és változók C. 265 00:12:39,940 --> 00:12:41,470 >> Te is az utat. 266 00:12:41,470 --> 00:12:43,040 A tanulási görbe tűnhet kemény. 267 00:12:43,040 --> 00:12:44,690 Tehát hogy lépésről lépésre. 268 00:12:44,690 --> 00:12:47,110 Győződjön meg róla, írja meg pszeudo-kód merülés előtt túl mély 269 00:12:47,110 --> 00:12:49,000 be ismeretlen szintaxis. 270 00:12:49,000 --> 00:12:52,030 >> Készíts egy teendők, és szakítani a hozzárendelés kisebb, könnyebben 271 00:12:52,030 --> 00:12:53,440 kezelhető feladatokat. 272 00:12:53,440 --> 00:12:55,810 Fedezze fel az összes CS50 források. 273 00:12:55,810 --> 00:12:58,270 Amellett, hogy előadás, rewatch ez a séta. 274 00:12:58,270 --> 00:12:59,790 >> Fordítson figyelmet a részt. 275 00:12:59,790 --> 00:13:00,710 Nézd meg a rövidnadrág. 276 00:13:00,710 --> 00:13:04,640 Olvassa el osztálytársai kérdéseire A Beszéljétek meg, és tegye a saját. 277 00:13:04,640 --> 00:13:06,110 >> Sok szerencsét a p-set. 278 00:13:06,110 --> 00:13:07,200 És köszönet néz. 279 00:13:07,200 --> 00:13:08,690 Ez volt mohó. 280 00:13:08,690 --> 00:13:15,691 >> [MUSIC Playing]