1 00:00:00,000 --> 00:00:10,216 >> [MUZYKA GRA] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA Chandler: Teraz możemy zająć chciwy. 3 00:00:12,060 --> 00:00:14,390 Powiedzmy, że jesteś kasjerka, a trzeba dać Klient 4 00:00:14,390 --> 00:00:16,309 pewna ilość zmian. 5 00:00:16,309 --> 00:00:18,820 Cóż, jeśli jesteś chciwy kasjer, że chcesz zachować wszystkie 6 00:00:18,820 --> 00:00:20,040 monety do siebie. 7 00:00:20,040 --> 00:00:24,310 Więc chcesz dać klientowi ich zmianę stosując jako kilka monet, jak to możliwe. 8 00:00:24,310 --> 00:00:27,640 >> Twoim zadaniem w tym p-set jest wdrożenie Chciwy, program 9 00:00:27,640 --> 00:00:30,530 obliczy minimalną liczbę monet używanych do dowolnego 10 00:00:30,530 --> 00:00:31,940 biorąc pod uwagę ilość zmian. 11 00:00:31,940 --> 00:00:35,660 Przed nurkowaniem w programowaniu koncepcje i C składnia chciwy, 12 00:00:35,660 --> 00:00:38,410 niech najpierw rozmowa przez Sknerus Program, i zobaczyć, czy 13 00:00:38,410 --> 00:00:40,570 Można zidentyfikować algorytmu. 14 00:00:40,570 --> 00:00:42,560 Pamiętaj, że algorytm jest tylko zestaw 15 00:00:42,560 --> 00:00:44,680 instrukcje rozwiązywania problemów. 16 00:00:44,680 --> 00:00:48,060 Algorytm chciwy będzie tylko zestaw logicznych zasad i kroków, które 17 00:00:48,060 --> 00:00:49,000 możemy podążać. 18 00:00:49,000 --> 00:00:52,510 I będą zawsze uzyskując minimum liczba monet potrzebnych. 19 00:00:52,510 --> 00:00:54,340 >> Pierwszą rzeczą, którą trzeba się wiedzieć, jak dużo zmian 20 00:00:54,340 --> 00:00:55,710 jest należne do klienta. 21 00:00:55,710 --> 00:00:58,560 W tym przykładzie, powiedzmy, 0,32 dolarów. 22 00:00:58,560 --> 00:01:00,880 Istnieje wiele sposobów, aby uzyskać z powrotem 0,32 dolarów. 23 00:01:00,880 --> 00:01:03,950 Można użyć, na przykład, 32 groszy. 24 00:01:03,950 --> 00:01:07,560 Lub jeśli jesteś nieco greedier w Wybierając swoje monety, można użyć 25 00:01:07,560 --> 00:01:11,730 pięć monet zamiast 32, dając klientów - trzy dimes 26 00:01:11,730 --> 00:01:14,690 Każdy 0,10 dolarów - i dwa grosze - 0,01 dolarów każda. 27 00:01:14,690 --> 00:01:16,830 >> Ale możemy to zrobić lepiej niż pięć monet? 28 00:01:16,830 --> 00:01:18,990 Możemy być nawet greedier? 29 00:01:18,990 --> 00:01:20,410 Całkiem możliwe. 30 00:01:20,410 --> 00:01:23,360 >> Niech nadal chodząc Program chciwy, i zobaczyć. 31 00:01:23,360 --> 00:01:27,090 Jeśli twój koniec celem jest wykorzystanie kilku monet jest to możliwe, to byłoby najbardziej 32 00:01:27,090 --> 00:01:29,680 rozsądne, aby korzystać największym możliwe monety. 33 00:01:29,680 --> 00:01:32,410 Wolisz dać jedną czwartą kopii - 0.25 dolarów każdy - 34 00:01:32,410 --> 00:01:33,640 niż pięć monet - 35 00:01:33,640 --> 00:01:34,940 0,05 dolarów każda. 36 00:01:34,940 --> 00:01:38,260 Więc może nasz przepis na rządzenie Chciwy można zawsze używać 37 00:01:38,260 --> 00:01:40,590 największa moneta. 38 00:01:40,590 --> 00:01:43,640 Z kwartałach dimes, nickels, i grosze, nasze 39 00:01:43,640 --> 00:01:44,830 Największa moneta jest czwarta. 40 00:01:44,830 --> 00:01:47,690 Więc postaramy się wykorzystać je w pierwszej kolejności. 41 00:01:47,690 --> 00:01:49,270 >> Z powrotem do naszego 0,32 dolarów. 42 00:01:49,270 --> 00:01:52,455 Możemy użyć ćwierć dać Klient 0,32 dolarów? 43 00:01:52,455 --> 00:01:52,930 Tak. 44 00:01:52,930 --> 00:01:55,530 , Który pozostawia nas z 0,07 dolarów w lewo. 45 00:01:55,530 --> 00:01:57,440 >> Możemy użyć kolejny kwartał? 46 00:01:57,440 --> 00:02:00,100 Nie, ponieważ 25 jest większa niż siedem. 47 00:02:00,100 --> 00:02:03,470 Nie chcemy, aby dać klientowi więcej niż my im winni. 48 00:02:03,470 --> 00:02:04,190 >> Dobrze. 49 00:02:04,190 --> 00:02:07,370 Teraz, gdy już wyczerpały nasze czwarte, przejdźmy do następnego największym 50 00:02:07,370 --> 00:02:09,090 moneta, bilon. 51 00:02:09,090 --> 00:02:12,400 Możemy używać ani grosza dać Klient ich 0,07 dolarów z powrotem? 52 00:02:12,400 --> 00:02:15,100 Nie od 10 jest większa niż siedem. 53 00:02:15,100 --> 00:02:18,400 >> Tak więc następna największa moneta dostępna dla nas jest nikiel. 54 00:02:18,400 --> 00:02:19,590 Możemy użyć niklu? 55 00:02:19,590 --> 00:02:20,250 Tak. 56 00:02:20,250 --> 00:02:22,940 I wtedy mielibyśmy 0,02 dolarów pozostało. 57 00:02:22,940 --> 00:02:24,910 >> Nie możemy użyć niklu wrócić 0,02 dolarów. 58 00:02:24,910 --> 00:02:29,510 Więc przenieśliśmy się w ostatnią monetę naszej dyspozycji - grosza. 59 00:02:29,510 --> 00:02:33,090 I po użyciu dwóch groszy, bylibyśmy lewo zero groszy, co oznacza, że 60 00:02:33,090 --> 00:02:36,350 mamy skutecznie zwrócona Użytkownik winien ich zmiana 61 00:02:36,350 --> 00:02:37,830 przy użyciu tylko cztery monety - 62 00:02:37,830 --> 00:02:40,410 jedna czwarta, jedna nikiel, i dwa grosze. 63 00:02:40,410 --> 00:02:43,880 >> Możesz uruchomić rozwiązanie, aby sprawdzić, czy personel Nasza zasada rządząca i proces dał 64 00:02:43,880 --> 00:02:44,770 nam prawidłowa odpowiedź. 65 00:02:44,770 --> 00:02:47,820 Dla większości zespołów problemowych, będziesz mógł uruchomić rozwiązanie, aby zobaczyć, jak personel 66 00:02:47,820 --> 00:02:49,900 własny program powinien działać. 67 00:02:49,900 --> 00:02:53,390 I szczegółowe instrukcje będą być problemu ustala specyfikacje. 68 00:02:53,390 --> 00:02:57,180 >> Kiedy uruchomić rozwiązanie pracowników, to prosi nas o ile zmiana jest należne 69 00:02:57,180 --> 00:02:59,790 pamiętać, że prosi o wartość w złotych. 70 00:02:59,790 --> 00:03:03,580 Mamy wejście 0,32 dolarów, 0,32. 71 00:03:03,580 --> 00:03:06,830 To mówi nam, że cztery monety są należne, zgodne z naszą odpowiedzią. 72 00:03:06,830 --> 00:03:08,160 Fantastyczne. 73 00:03:08,160 --> 00:03:10,210 >> Teraz zacznijmy patrząc w realizacji 74 00:03:10,210 --> 00:03:11,780 algorytmu Greedy. 75 00:03:11,780 --> 00:03:13,410 Wiemy, że kilka rzeczy. 76 00:03:13,410 --> 00:03:17,280 Raz, że musimy monitować Użytkownik na kwotę zmiany. 77 00:03:17,280 --> 00:03:20,830 >> Dwa, że ​​my chcemy podążać nasze regulujące zasady, aby zawsze używać 78 00:03:20,830 --> 00:03:22,990 największa moneta. 79 00:03:22,990 --> 00:03:26,370 I trzy, że musimy śledzić o ile monet używamy. 80 00:03:26,370 --> 00:03:30,040 Bo wreszcie, musimy wydrukować liczba monet, że. 81 00:03:30,040 --> 00:03:33,270 >> Po pierwsze, monitowania użytkownika na kwotę zmiany. 82 00:03:33,270 --> 00:03:36,880 Zawsze, gdy masz do czynienia z danych wprowadzonych przez użytkownika, należy Upewnij się, że myślę o wszystkich 83 00:03:36,880 --> 00:03:40,010 wymagania i tylko wejście akceptuje wejście, które spełnia te 84 00:03:40,010 --> 00:03:40,880 wymagania. 85 00:03:40,880 --> 00:03:44,100 W tym przypadku, możemy mieć do czynienia z wartość pieniężna w dolarach. 86 00:03:44,100 --> 00:03:48,230 >> Funkcje GetFloat i GetInt zapewnienia że wejście jest numeryczna. 87 00:03:48,230 --> 00:03:51,700 Ale użytkownik może wprowadzić ujemne wartości liczbowe. 88 00:03:51,700 --> 00:03:56,260 Więc pamiętać, aby używać tylko nieujemna wejścia, które obejmuje wszystkie negatywne 89 00:03:56,260 --> 00:03:58,370 liczby i zera. 90 00:03:58,370 --> 00:04:00,260 >> W tym przypadku wejścia powinien być pływak. 91 00:04:00,260 --> 00:04:01,960 Innymi słowy, liczba dziesiętna. 92 00:04:01,960 --> 00:04:06,000 Ponieważ specyfikacja wymaga zestawu problemem można prosić o wejście w dolarach. 93 00:04:06,000 --> 00:04:09,540 >> Ale w C, wartości zmiennoprzecinkowe nie może być reprezentowane dokładnie. 94 00:04:09,540 --> 00:04:12,490 Ponieważ istnieje skończona liczba bitów o jakim 95 00:04:12,490 --> 00:04:14,870 reprezentują wartości nieskończone. 96 00:04:14,870 --> 00:04:16,860 Weź numer 0.1. 97 00:04:16,860 --> 00:04:21,140 Gdybym miał zapytać napisać 0,1 przez Ręka do setnej miejsca po przecinku, 98 00:04:21,140 --> 00:04:24,380 byś dodać 1, a następnie przez 99 zer. 99 00:04:24,380 --> 00:04:27,080 Należałoby oczekiwać, że nasz komputer by wydrukować dokładnie to samo 100 00:04:27,080 --> 00:04:28,330 gdy zapytaliśmy go. 101 00:04:28,330 --> 00:04:30,320 >> Zobaczmy więc, co robi. 102 00:04:30,320 --> 00:04:33,150 Ja przeglądu wartości drukowania do koniec tego przejść. 103 00:04:33,150 --> 00:04:39,270 Teraz, patrz tutaj, że f% jest zastępczy zmiennoprzecinkowych. 104 00:04:39,270 --> 00:04:44,530 Ale określić wcześniej, że chcemy Wyświetlona 100 dziesiętne, a następnie nowy 105 00:04:44,530 --> 00:04:46,506 linia do ładniejszy formatowania. 106 00:04:46,506 --> 00:04:51,710 >> Po ciągu wybieramy 0,1 jako pływak, który chcemy wydrukować. 107 00:04:51,710 --> 00:04:56,680 I wynik, jeden, a następnie od około zera, a następnie 108 00:04:56,680 --> 00:04:57,980 cała masa liczb. 109 00:04:57,980 --> 00:05:00,470 Na pewno nie jak oczekiwano. 110 00:05:00,470 --> 00:05:03,490 >> Zmiennoprzecinkowe brak precyzji może wprowadzić błędów zaokrąglania do swojej 111 00:05:03,490 --> 00:05:07,330 Obliczenia, które będzie zdecydowanie chcą uniknąć. 112 00:05:07,330 --> 00:05:10,900 Jeśli chcesz zobaczyć więcej przykładów, można Możesz pobrać imprecision.ce od 113 00:05:10,900 --> 00:05:14,880 przejść przez kod, który jest prosty Program, który prosi go pływak i drukuje 114 00:05:14,880 --> 00:05:17,550 Powrót do setnej miejsca po przecinku. 115 00:05:17,550 --> 00:05:20,340 Oczywiście, jeśli chcesz, aby pokazać mniej lub więcej miejsc po przecinku 116 00:05:20,340 --> 00:05:22,410 można zmienić siebie. 117 00:05:22,410 --> 00:05:25,740 >> Jak zobaczysz, choć różnica między nimi jest niewielka, gdy pojawi się 118 00:05:25,740 --> 00:05:30,460 do mnożenia i dodawania pływaków, że rozbieżność może w końcu dodać. 119 00:05:30,460 --> 00:05:31,790 Kopię do chciwy. 120 00:05:31,790 --> 00:05:34,870 My chcemy, aby uniknąć błędów zaokrąglania przez czynienia z liczbami. 121 00:05:34,870 --> 00:05:38,090 Więc po otrzymaniu prawidłowych wejście od użytkownika, to niech konwersji 122 00:05:38,090 --> 00:05:39,550 Wartość dolara centów. 123 00:05:39,550 --> 00:05:43,420 >> Psychicznie, robimy to poprzez pomnożenie Wartość dolara przez 100. 124 00:05:43,420 --> 00:05:46,400 Ale pamiętaj, ze względu zmiennoprzecinkowe brak precyzji, chcemy, aby 125 00:05:46,400 --> 00:05:48,580 upewnić się, że używamy właściwej wartości. 126 00:05:48,580 --> 00:05:52,510 Mnożąc przez 100, będzie zasadniczo przenieść miejsca po przecinku dwa miejsca do 127 00:05:52,510 --> 00:05:56,640 Dobrze, odcięcie lub obcinania coś później. 128 00:05:56,640 --> 00:05:59,430 >> Jeśli bawić się kilka przykłady, przekonasz się, że nie będzie 129 00:05:59,430 --> 00:06:02,980 zawsze ma odpowiedni numer, jeśli korzystają z tej metody obcinania. 130 00:06:02,980 --> 00:06:10,011 Przykładowo, 12,59 drukowane 100. miejsc po przecinku, która daje 131 00:06:10,011 --> 00:06:14,050 12,5899, et cetera. 132 00:06:14,050 --> 00:06:18,460 Można dostać 12,58 jeśli obcięte, nie 12.59, jak trzeba. 133 00:06:18,460 --> 00:06:21,130 >> Zamiast tego, lepiej zaokrąglić Numer pierwszy. 134 00:06:21,130 --> 00:06:23,930 Na szczęście, C jest wyposażony Funkcja o nazwie Okrągły. 135 00:06:23,930 --> 00:06:25,040 Jest w bibliotece matematycznej. 136 00:06:25,040 --> 00:06:28,540 >> Jeśli chcesz wiedzieć, jak korzystać rundy, następnie można wywołać instrukcję lub 137 00:06:28,540 --> 00:06:30,550 Strona man dla tej funkcji. 138 00:06:30,550 --> 00:06:35,510 Można to zrobić, wpisując krótki dla człowieka, ręczny, a następnie, że funkcja 139 00:06:35,510 --> 00:06:36,620 chcę patrzeć. 140 00:06:36,620 --> 00:06:42,280 Tak wpisując cały człowiek w terminalu linia poleceń spowoduje instrukcję. 141 00:06:42,280 --> 00:06:44,790 >> To może być trochę trudne do odczytania, ale w końcu będziesz 142 00:06:44,790 --> 00:06:45,660 się zawiesić go. 143 00:06:45,660 --> 00:06:48,290 Strony man pokazać, co funkcję nie, a nawet 144 00:06:48,290 --> 00:06:50,170 Możliwości wykorzystania tego. 145 00:06:50,170 --> 00:06:52,340 Zostawię cię zbadać Strona man dla rundy. 146 00:06:52,340 --> 00:06:55,960 Ale wiem, że można go używać do rundy wartość podczas konwersji 147 00:06:55,960 --> 00:06:57,180 dolarów centów. 148 00:06:57,180 --> 00:06:59,690 >> Okrągły daje powrotem numer danych typu double. 149 00:06:59,690 --> 00:07:03,810 I można konwertować lub odlewane go do int później. 150 00:07:03,810 --> 00:07:04,980 Świetnie. 151 00:07:04,980 --> 00:07:08,120 Teraz mamy monit użytkownikowi na kwotę pieniężną, a 152 00:07:08,120 --> 00:07:09,520 zamieniona centów. 153 00:07:09,520 --> 00:07:12,410 Teraz możemy realizować algorytm że zawsze używa 154 00:07:12,410 --> 00:07:14,640 Największe monety dostępne. 155 00:07:14,640 --> 00:07:17,790 >> Należy pamiętać, że istnieje wiele sposobów realizacji chciwy, jak 156 00:07:17,790 --> 00:07:21,200 istnieje wiele sposobów podejścia każdy komputer Problem nauki. 157 00:07:21,200 --> 00:07:24,040 Znalezienie najbardziej elegancki sposób, to jest część zabawy. 158 00:07:24,040 --> 00:07:27,030 Przez te P-set, jeśli program nie dokładnie odpowiadają mojemu 159 00:07:27,030 --> 00:07:29,190 wyjaśnienie w solucje, to jest OK. 160 00:07:29,190 --> 00:07:32,870 Ale upewnij się, że przechodzi sprawdzić 50, spełnia wszystkie 161 00:07:32,870 --> 00:07:36,270 Formularz specyfikacji wymagań, i rozważyć, czy Twój 162 00:07:36,270 --> 00:07:37,670 podejście ma dobry projekt. 163 00:07:37,670 --> 00:07:39,750 >> Innymi słowy, jak skuteczne jest? 164 00:07:39,750 --> 00:07:44,400 Na przykład, czy wpiszesz powtarzalne linie kodu, zamiast za pomocą pętli? 165 00:07:44,400 --> 00:07:47,580 Pisania kodu z lepszego projektu będzie się doświadczeniem w miarę postępów 166 00:07:47,580 --> 00:07:49,192 przez tor. 167 00:07:49,192 --> 00:07:52,350 >> Za to przejść przez, pójdę na dwie metody, które mogą być stosowane do 168 00:07:52,350 --> 00:07:53,540 zakończyć chciwy. 169 00:07:53,540 --> 00:07:57,160 Pierwszą metodą jest metoda z użyciem pętle i odejmowanie. 170 00:07:57,160 --> 00:08:00,050 Wcześniej, kiedy rozmawialiśmy przez Proces chciwy, nieustannie 171 00:08:00,050 --> 00:08:03,220 sprawdzić, czy możemy skorzystać na kwartał, i wykorzystywane aż jedną czwartą 172 00:08:03,220 --> 00:08:05,670 wartość pozostała było mniej niż $ 0,25. 173 00:08:05,670 --> 00:08:07,990 >> To przekłada się także na natomiast struktura pętli. 174 00:08:07,990 --> 00:08:11,550 Chociaż możemy nadal korzystać kwartału, użyć jednego. 175 00:08:11,550 --> 00:08:15,900 Że należy wykonać podczas pętli tak długo jak pozostała wartość jest większa niż 176 00:08:15,900 --> 00:08:18,240 lub równa wartości cent kwartalną. 177 00:08:18,240 --> 00:08:20,970 Oznacza to, że będziesz także chcą śledzić pozostałą gotówkę 178 00:08:20,970 --> 00:08:24,570 wartość i aktualizować go co czas, aby użyć monety. 179 00:08:24,570 --> 00:08:28,350 >> Należy również pamiętać, że na koniec, twój Wyjście to liczba monet stosowane. 180 00:08:28,350 --> 00:08:32,400 Tak więc kolejna rzecz do śledzenia jest liczba monet, które są używane. 181 00:08:32,400 --> 00:08:35,450 Możesz śledzić je za pomocą dobrze nazwane zmienne. 182 00:08:35,450 --> 00:08:39,730 A w ciele swojej pętli byłoby będzie aktualizacja do tych zmiennych. 183 00:08:39,730 --> 00:08:43,400 Po zakończeniu pętli na kwartał, ci Można użyć podobną do grosze, 184 00:08:43,400 --> 00:08:47,180 i tak dalej i tak dalej, dopóki nie zwrócone wszystkie gotówce. 185 00:08:47,180 --> 00:08:50,640 >> Pisałem jakiś pseudo-kod, żeby pomóc w wizualizacji, jak 186 00:08:50,640 --> 00:08:55,080 Proces dyskutowaliśmy może przełożyć się C. Jak widać tutaj, jestem wciąż przy 187 00:08:55,080 --> 00:08:55,760 Angielskie słowa. 188 00:08:55,760 --> 00:08:56,830 To nie jest jeszcze C. 189 00:08:56,830 --> 00:08:58,590 Ale zacząłem tiret rzeczy. 190 00:08:58,590 --> 00:09:00,690 Wrzuciłem warunki wewnątrz moje nawiasy. 191 00:09:00,690 --> 00:09:03,710 To zaczyna wyglądać trochę trochę jak kod programowania. 192 00:09:03,710 --> 00:09:06,410 >> Pseudo-kod jest doskonałym sposobem aby dostać się zaczęło. 193 00:09:06,410 --> 00:09:08,810 Wizualizację kodu przed patrzysz się składni. 194 00:09:08,810 --> 00:09:12,570 Ponieważ często najtrudniejsze Problem jest naprawdę zrozumieć, co 195 00:09:12,570 --> 00:09:14,450 dokładnie trzeba zrobić. 196 00:09:14,450 --> 00:09:17,490 Raz piszesz, że w dół, to jest to dużo łatwiej zajrzeć do funkcji 197 00:09:17,490 --> 00:09:20,390 i specyficzne dla składni linii kodu pseudo- 198 00:09:20,390 --> 00:09:23,760 >> Należy pamiętać, że to może nie być identyczna rodzaju szkieletu 199 00:09:23,760 --> 00:09:25,560 Twój kod, który piszesz. 200 00:09:25,560 --> 00:09:27,640 Nie zawsze są optymalizacje być wykonane. 201 00:09:27,640 --> 00:09:31,250 A zwłaszcza w moim pseudo-kodzie tu, czy można go dostrzec. 202 00:09:31,250 --> 00:09:33,380 >> Ale zasadniczo proces i sposób myślenia 203 00:09:33,380 --> 00:09:35,250 to tak jak mówiliśmy. 204 00:09:35,250 --> 00:09:38,350 Pierwsza linia mówi nam uzyskać pewną kwotę w dolarach. 205 00:09:38,350 --> 00:09:40,960 I mówi do drugiego przekonwertować go do centa. 206 00:09:40,960 --> 00:09:45,640 >> A następnie, podczas gdy czwarte mogą być stosowane, ale chce zwiększyć liczbę monet i 207 00:09:45,640 --> 00:09:47,200 zmniejszyć ilość gotówki. 208 00:09:47,200 --> 00:09:49,880 Samo dimes, monet, i grosze. 209 00:09:49,880 --> 00:09:53,230 I wreszcie powiemy użytkownika ile monet użyliśmy. 210 00:09:53,230 --> 00:09:53,750 >> Świetnie. 211 00:09:53,750 --> 00:09:55,680 Tak, że dochodzi do wniosku, metody pętli. 212 00:09:55,680 --> 00:09:59,720 Teraz porozmawiajmy o metody modułowej, który jest bardziej jak podział. 213 00:09:59,720 --> 00:10:03,630 >> Wszyscy jesteśmy zaznajomieni z plus, minus, mnożenie i dzielenie podmiotów 214 00:10:03,630 --> 00:10:05,030 dla nas dostępne. 215 00:10:05,030 --> 00:10:09,060 C ma wszystkie cztery z nich, a także zawiera Operator modulo, reprezentowana przez 216 00:10:09,060 --> 00:10:10,640 znak procent. 217 00:10:10,640 --> 00:10:11,940 Modulo jest naprawdę fajnie. 218 00:10:11,940 --> 00:10:14,880 To daje resztę z dzielenia dwóch liczb. 219 00:10:14,880 --> 00:10:19,910 >> Pamiętam długą wiadomość podczas podziału podzielić, powiedzmy, 74 przez trzy? 220 00:10:19,910 --> 00:10:23,510 Począwszy od miejsca dziesiątek, byś wiem, że 3 idzie do siedmiu 221 00:10:23,510 --> 00:10:27,620 dwa razy, aby dokonać sześciu z jedna pozostała. 222 00:10:27,620 --> 00:10:31,870 Można by napisać dwa na górze, a następnie odjąć 6 z siedmiu, przeniesienia 223 00:10:31,870 --> 00:10:34,980 Pozostała część 14 do powtórzyć proces. 224 00:10:34,980 --> 00:10:39,410 >> Trzy przechodzi w 14 cztery razy do Marka 12, z pozostałej dwa. 225 00:10:39,410 --> 00:10:40,930 A dwa nie przenieść więcej. 226 00:10:40,930 --> 00:10:44,170 Więc dwa będzie w lewo na dno z pozostałą. 227 00:10:44,170 --> 00:10:46,800 >> I to właśnie modulo daje, ty liczba ta w dolnej części. 228 00:10:46,800 --> 00:10:49,790 Więc 74 modulo trzy da ci dwa. 229 00:10:49,790 --> 00:10:52,980 I 10 modulo dwa, dobrze, że nie daje zero. 230 00:10:52,980 --> 00:10:56,500 Ponieważ nie ma żadnych pozostała po podzieleniu 10 przez dwa. 231 00:10:56,500 --> 00:11:00,190 >> Sześć modulo pięć, a pięć idzie do sześciu raz. 232 00:11:00,190 --> 00:11:01,830 I to jest jeden pozostały. 233 00:11:01,830 --> 00:11:04,720 Więc sześć modulo pięć jest jeden. 234 00:11:04,720 --> 00:11:07,950 >> Następnie, jeśli masz siedem modulo dziewięć, można dostać siedem. 235 00:11:07,950 --> 00:11:09,840 Ponieważ dziewięć jest większa niż siedem. 236 00:11:09,840 --> 00:11:15,020 Więc nie podzielić to wszystko do siedmiu, pozostawiając siedem jako odpowiedź. 237 00:11:15,020 --> 00:11:18,340 >> Jeśli myślisz o modulo trochę więcej, pamiętaj, że daje ci 238 00:11:18,340 --> 00:11:21,020 Pozostała po podzieleniu coś. 239 00:11:21,020 --> 00:11:23,620 Pomyśl o tym, jak może być w Możliwość korzystania w chciwy. 240 00:11:23,620 --> 00:11:27,620 Załóżmy, że użytkownik prosi o 400,11 dolarów. 241 00:11:27,620 --> 00:11:30,470 Co jest sposobem, aby dowiedzieć się, ile czwarte potrzebne, bez konieczności 242 00:11:30,470 --> 00:11:32,360 Ilość każdego? 243 00:11:32,360 --> 00:11:37,480 >> Po dowiedzieć się, ile czwarte można użyć do 400,11 dolarów, ile 244 00:11:37,480 --> 00:11:38,880 zmienić szczątki? 245 00:11:38,880 --> 00:11:42,110 Być może połączenie tutaj między Modulo i podział by się 246 00:11:42,110 --> 00:11:46,200 poręczne dać fajny, elegancki podejście do Greedy problemu. 247 00:11:46,200 --> 00:11:49,030 Ale pamiętaj, że rada zasada nadal obowiązuje. 248 00:11:49,030 --> 00:11:51,610 Zawsze należy stosować możliwie największą monetę. 249 00:11:51,610 --> 00:11:55,340 >> Po wykonaniu obliczenia, jak wiele monet w użyciu, ostatni krok 250 00:11:55,340 --> 00:11:57,930 jest wydrukować liczbę Monety, które obliczone. 251 00:11:57,930 --> 00:12:01,610 Do tej pory używaliśmy printf funkcjonować wyłącznie na strunach. 252 00:12:01,610 --> 00:12:05,200 Ale jeśli chcesz wydrukować in, lub po prostu każdy rodzaj danych, które przechowywane 253 00:12:05,200 --> 00:12:09,200 w zmiennej, trzeba podać że stosując zastępczy. 254 00:12:09,200 --> 00:12:12,400 >> Tutaj podaję tylko kilka porad w jaki sposób wydrukować wartości. 255 00:12:12,400 --> 00:12:16,390 Jeśli masz liczbę całkowitą, byś napisz ciąg za pomocą% d jako 256 00:12:16,390 --> 00:12:17,450 zastępczy. 257 00:12:17,450 --> 00:12:20,170 Po cudzysłowu znak, oddziel. 258 00:12:20,170 --> 00:12:24,530 , A następnie umieścić w całkowitej, która będzie zająć miejsce% d, gdy wydrukowane. 259 00:12:24,530 --> 00:12:27,150 >> Więc po wyświetleniu numeru używane monety, jesteś 260 00:12:27,150 --> 00:12:28,500 wykończone chciwy. 261 00:12:28,500 --> 00:12:32,000 Upewnij się, aby sprawdzić wszystkie przypadki, narożne, posprzątać swój styl trochę, a ty jesteś 262 00:12:32,000 --> 00:12:33,350 Wszystko gotowe do złożenia. 263 00:12:33,350 --> 00:12:36,000 Pod koniec tego zestawu problemów, które będziesz być bardziej zaznajomieni z CS50 264 00:12:36,000 --> 00:12:39,940 Urządzenie, terminal, a pętla struktury i zmienne w C 265 00:12:39,940 --> 00:12:41,470 >> Jesteś na dobrej drodze. 266 00:12:41,470 --> 00:12:43,040 Krzywa uczenia się może wydawać trudne. 267 00:12:43,040 --> 00:12:44,690 Więc weź to krok po kroku. 268 00:12:44,690 --> 00:12:47,110 Upewnij się, że pisać pseudo-kod przed zbyt głębokie nurkowanie 269 00:12:47,110 --> 00:12:49,000 w składni nieznanym. 270 00:12:49,000 --> 00:12:52,030 >> Dodać do zrobienia, i zerwać zadanie na mniejsze, bardziej 271 00:12:52,030 --> 00:12:53,440 zarządzaniu zadania. 272 00:12:53,440 --> 00:12:55,810 Poznaj wszystkich zasobów CS50. 273 00:12:55,810 --> 00:12:58,270 Oprócz wykładu, rewatch to przejść. 274 00:12:58,270 --> 00:12:59,790 >> Zwróć szczególną uwagę na części. 275 00:12:59,790 --> 00:13:00,710 Sprawdź szorty. 276 00:13:00,710 --> 00:13:04,640 Czytaj pytania kolegami " na Omów i dodawać własne. 277 00:13:04,640 --> 00:13:06,110 >> Powodzenia z p-set. 278 00:13:06,110 --> 00:13:07,200 I dzięki za oglądanie. 279 00:13:07,200 --> 00:13:08,690 To był chciwy. 280 00:13:08,690 --> 00:13:15,691 >> [MUZYKA GRA]