1 00:00:00,000 --> 00:00:10,216 >> [MUSIC SPIEL] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA CHAN: Nun wollen wir angehen Greedy. 3 00:00:12,060 --> 00:00:14,390 Angenommen, Sie sind ein Kassierer, und Sie müssen Ihre Kunden einen geben 4 00:00:14,390 --> 00:00:16,309 gewisse Veränderung. 5 00:00:16,309 --> 00:00:18,820 Nun, wenn Sie ein gieriger Kassierer waren, Sie wollen würde, um alle zu halten 6 00:00:18,820 --> 00:00:20,040 die Münzen für sich. 7 00:00:20,040 --> 00:00:24,310 So können Sie dem Kunden die Änderung geben würde mit so wenig Münzen wie möglich. 8 00:00:24,310 --> 00:00:27,640 >> Ihre Aufgabe für diese p-Set ist zu implementieren Gierig, ein Programm, das 9 00:00:27,640 --> 00:00:30,530 berechnet die Mindestzahl von Münzen verwendet, zu einem machen 10 00:00:30,530 --> 00:00:31,940 gegebenen Betrag der Änderung. 11 00:00:31,940 --> 00:00:35,660 Vor dem Tauchen in der Programmierung Konzepte und C-Syntax für Gierig, 12 00:00:35,660 --> 00:00:38,410 Sprechen wir zuerst über die Greedy -Programm, und sehen, ob wir 13 00:00:38,410 --> 00:00:40,570 kann einen Algorithmus zu identifizieren. 14 00:00:40,570 --> 00:00:42,560 Denken Sie daran, dass ein Algorithmus ist nur eine Reihe von 15 00:00:42,560 --> 00:00:44,680 Anweisungen für die Lösung von Problemen. 16 00:00:44,680 --> 00:00:48,060 Ein Algorithmus zur Greedy wäre nur ein Satz von logischen Regeln und Schritte, die 17 00:00:48,060 --> 00:00:49,000 wir folgen können. 18 00:00:49,000 --> 00:00:52,510 Und sie werden immer die minimale Ausbeute Anzahl von Münzen benötigt. 19 00:00:52,510 --> 00:00:54,340 >> Das erste, was Sie brauchen schon wissen, ist, wie viel Veränderung 20 00:00:54,340 --> 00:00:55,710 wird dem Kunden gegenüber. 21 00:00:55,710 --> 00:00:58,560 Für dieses Beispiel, sagen wir $ 0,32. 22 00:00:58,560 --> 00:01:00,880 Es gibt viele Möglichkeiten, um wieder 0,32 $. 23 00:01:00,880 --> 00:01:03,950 Sie könnten zum Beispiel 32 Pfennige. 24 00:01:03,950 --> 00:01:07,560 Oder wenn Sie ein bisschen gieriger waren in Auswahl Ihrer Münzen, die Sie verwenden können 25 00:01:07,560 --> 00:01:11,730 fünf Münzen 32 statt, indem der Kunde drei Groschen - 26 00:01:11,730 --> 00:01:14,690 Jeweils $ 0,10 - und zwei Pfennige - $ 0,01 je. 27 00:01:14,690 --> 00:01:16,830 >> Aber können wir es besser machen als fünf Münzen? 28 00:01:16,830 --> 00:01:18,990 Können wir noch gieriger sein? 29 00:01:18,990 --> 00:01:20,410 Durchaus möglich. 30 00:01:20,410 --> 00:01:23,360 >> Lassen Sie uns weiter zu Fuß durch der Greedy-Programm, und zu sehen. 31 00:01:23,360 --> 00:01:27,090 Wenn Ihr Endziel ist es, ein paar Münzen zu verwenden wie möglich, dann würde es den meisten sein 32 00:01:27,090 --> 00:01:29,680 ratsam, den größten verwenden möglich Münzen. 33 00:01:29,680 --> 00:01:32,410 Sie würden eher geben ein Viertel Rücken - - jede 0,25 $ 34 00:01:32,410 --> 00:01:33,640 als fünf Nickels - 35 00:01:33,640 --> 00:01:34,940 $ 0,05 je. 36 00:01:34,940 --> 00:01:38,260 Also vielleicht unsere Regierungsregel für Gierig sein kann, um immer die 37 00:01:38,260 --> 00:01:40,590 größte Münze möglich. 38 00:01:40,590 --> 00:01:43,640 Aus Viertel, Groschen, Nickel, und Pfennige, unsere 39 00:01:43,640 --> 00:01:44,830 größte Münze ist das Viertel. 40 00:01:44,830 --> 00:01:47,690 Also werden wir versuchen, sie zum ersten Mal verwenden. 41 00:01:47,690 --> 00:01:49,270 >> Zurück zu unserer $ 0,32. 42 00:01:49,270 --> 00:01:52,455 Können wir ein Viertel zu geben, der Kunde 0,32 $? 43 00:01:52,455 --> 00:01:52,930 Ja. 44 00:01:52,930 --> 00:01:55,530 Das würde uns mit $ 0,07 nach links verlassen. 45 00:01:55,530 --> 00:01:57,440 >> Können wir ein weiteres Quartal? 46 00:01:57,440 --> 00:02:00,100 Nein, denn 25 ist größer als sieben. 47 00:02:00,100 --> 00:02:03,470 Wir wollen nicht, um dem Kunden zu geben mehr, als wir ihnen zu verdanken haben. 48 00:02:03,470 --> 00:02:04,190 >> Gut. 49 00:02:04,190 --> 00:02:07,370 Nun, da wir unser Quartier erschöpft, lassen Sie uns nun auf die nächste größte 50 00:02:07,370 --> 00:02:09,090 Münze, die Cent. 51 00:02:09,090 --> 00:02:12,400 Können wir einen Cent zu geben, die Kunden ihre 0,07 $ zurück? 52 00:02:12,400 --> 00:02:15,100 Nein, da 10 größer als sieben. 53 00:02:15,100 --> 00:02:18,400 >> So wird der nächste größte Münze zugänglich ist für uns die Nickel. 54 00:02:18,400 --> 00:02:19,590 Können wir eine Nickel? 55 00:02:19,590 --> 00:02:20,250 Ja. 56 00:02:20,250 --> 00:02:22,940 Und dann würden wir 0,02 $ übrig haben. 57 00:02:22,940 --> 00:02:24,910 >> Wir können nicht mit einem Nickel zu 0,02 $ zurück. 58 00:02:24,910 --> 00:02:29,510 So zogen wir die letzte Münze uns zur Verfügung - der Groschen. 59 00:02:29,510 --> 00:02:33,090 Und nach über zwei Pfennige, würden wir sein links mit null Cent, was bedeutet, dass 60 00:02:33,090 --> 00:02:36,350 haben wir erfolgreich zurückgezahlt der Benutzer die Änderung geschuldeten 61 00:02:36,350 --> 00:02:37,830 mit nur vier Münzen - 62 00:02:37,830 --> 00:02:40,410 ein Viertel, die Nickel, und zwei Pfennige. 63 00:02:40,410 --> 00:02:43,880 >> Sie können die Personal-Lösung laufen, um zu sehen, ob unsere Regierungs Regel-und Prozess gab 64 00:02:43,880 --> 00:02:44,770 uns die richtige Antwort. 65 00:02:44,770 --> 00:02:47,820 Für die meisten Problemstellungen, werden Sie in der Lage sein, Lösung, um die Mitarbeiter ausführen, um zu sehen, wie 66 00:02:47,820 --> 00:02:49,900 Ihr eigenes Programm sollte funktionieren. 67 00:02:49,900 --> 00:02:53,390 Und spezifischen Anweisungen wird sein, das Problem setzt specs. 68 00:02:53,390 --> 00:02:57,180 >> Sobald wir die Personal-Lösung laufen, es veranlasst uns, wie viel Veränderung geschuldet 69 00:02:57,180 --> 00:02:59,790 beachten Sie, dass es für das fragt betragen in Dollar. 70 00:02:59,790 --> 00:03:03,580 Wir Eingangs $ 0,32, 0,32. 71 00:03:03,580 --> 00:03:06,830 Es sagt uns, dass vier Münzen geschuldet, im Einklang mit unserer Antwort. 72 00:03:06,830 --> 00:03:08,160 Fantastic. 73 00:03:08,160 --> 00:03:10,210 >> So, jetzt zu beginnen, lassen Sie bei der Umsetzung 74 00:03:10,210 --> 00:03:11,780 der Greedy-Algorithmus. 75 00:03:11,780 --> 00:03:13,410 Wir wissen, ein paar Dinge. 76 00:03:13,410 --> 00:03:17,280 Eine, die wir brauchen, um die Eingabeaufforderung Benutzer für einen Betrag von Veränderung. 77 00:03:17,280 --> 00:03:20,830 >> Zwei, dass wir folgen möchten unsere Regierungs Regel immer die 78 00:03:20,830 --> 00:03:22,990 größte Münze möglich. 79 00:03:22,990 --> 00:03:26,370 Und drei, dass wir den Überblick zu behalten wie viele Münzen die wir verwenden. 80 00:03:26,370 --> 00:03:30,040 Denn schließlich müssen wir drucken die Anzahl der Münzen, das wir. 81 00:03:30,040 --> 00:03:33,270 >> Erstens, die den Benutzer auffordert für einen Betrag von Veränderung. 82 00:03:33,270 --> 00:03:36,880 Wann immer Sie mit Benutzereingaben umgehen, stellen sicher, dass Sie all das denken, 83 00:03:36,880 --> 00:03:40,010 Anforderungen der Eingabe und nur Eingabe akzeptieren, dass diejenigen, trifft 84 00:03:40,010 --> 00:03:40,880 Anforderungen. 85 00:03:40,880 --> 00:03:44,100 In diesem Fall zu beschäftigen möchten wir ein Geldwert in Dollar. 86 00:03:44,100 --> 00:03:48,230 >> Die GetFloat und GetInt Funktionen sorgen dass die Eingabe numerischer. 87 00:03:48,230 --> 00:03:51,700 Aber der Benutzer ist in der Lage, Eingangs negativen Zahlenwerte. 88 00:03:51,700 --> 00:03:56,260 Also denken Sie daran, nur nicht-negative Eingänge, die alle negativ sind 89 00:03:56,260 --> 00:03:58,370 Zahlen und Null. 90 00:03:58,370 --> 00:04:00,260 >> In diesem Fall wird das Eingangs sollte ein Schwimmer sein. 91 00:04:00,260 --> 00:04:01,960 In anderen Worten, eine Dezimalzahl. 92 00:04:01,960 --> 00:04:06,000 Da das Problem Satz spec erfordert Sie für die Eingabe in Dollar zu bitten. 93 00:04:06,000 --> 00:04:09,540 >> Aber in C, kann Gleitkommazahlen nicht genau dargestellt werden. 94 00:04:09,540 --> 00:04:12,490 Da es eine endliche Anzahl von Bits, mit denen 95 00:04:12,490 --> 00:04:14,870 stellen unendliche Werte. 96 00:04:14,870 --> 00:04:16,860 Nehmen Sie die Zahl 0,1. 97 00:04:16,860 --> 00:04:21,140 Wenn ich Sie bitten, zu schreiben von 0,1 Hand auf den Hundertstel Dezimalstelle, 98 00:04:21,140 --> 00:04:24,380 Sie eine 1 schreiben würde, gefolgt von 99 Nullen. 99 00:04:24,380 --> 00:04:27,080 Wir würden erwarten, dass unsere Computer wäre drucken Sie die genau die gleiche Sache 100 00:04:27,080 --> 00:04:28,330 wenn wir sie aufgefordert. 101 00:04:28,330 --> 00:04:30,320 >> Also mal sehen, was es tut. 102 00:04:30,320 --> 00:04:33,150 Ich werde Druckwerte zu überprüfen Das Ende dieser Fuß durch. 103 00:04:33,150 --> 00:04:39,270 Denn jetzt, sehen hier, daß f% ist ein Platzhalter für eine Floating-Point. 104 00:04:39,270 --> 00:04:44,530 Aber wir geben im Voraus, dass wir wollen, 100 Dezimalstellen angezeigt wird, und dann ein neues 105 00:04:44,530 --> 00:04:46,506 Linie für schönere Formatierung. 106 00:04:46,506 --> 00:04:51,710 >> Nach der Zeichenfolge, wählen wir die 0,1 schweben, dass wir ausdrucken möchten. 107 00:04:51,710 --> 00:04:56,680 Und das Ergebnis, eine Eins ist, gefolgt von einigen Nullen, dann aber ein 108 00:04:56,680 --> 00:04:57,980 ganze Reihe von Zahlen. 109 00:04:57,980 --> 00:05:00,470 Sicher nicht, wie erwartet. 110 00:05:00,470 --> 00:05:03,490 >> Floating Point Ungenauigkeit einführen können Rundungsfehler in Ihren 111 00:05:03,490 --> 00:05:07,330 Berechnungen, die Sie möchte auf jeden Fall vermeiden. 112 00:05:07,330 --> 00:05:10,900 Wenn Sie weitere Beispiele sehen, möchten Sie imprecision.ce kann von der Download- 113 00:05:10,900 --> 00:05:14,880 Spaziergang durch Code, der ein einfacher ist Programm, das zu schweben, fragt und gibt es 114 00:05:14,880 --> 00:05:17,550 zurück zum hundertsten Nachkommastelle. 115 00:05:17,550 --> 00:05:20,340 Natürlich, wenn Sie zeigen wollen mehr oder weniger Dezimalstellen 116 00:05:20,340 --> 00:05:22,410 können Sie selbst ändern. 117 00:05:22,410 --> 00:05:25,740 >> Wie Sie sehen werden, auch wenn der Unterschied zwischen den beiden ist klein, wenn man 118 00:05:25,740 --> 00:05:30,460 Multiplizieren und Addieren Schwimmer, dass Diskrepanz kann schließlich summieren. 119 00:05:30,460 --> 00:05:31,790 Zurück zu gierig. 120 00:05:31,790 --> 00:05:34,870 Wir werden um Rundungsfehler zu vermeiden wollen durch den Umgang mit ganzen Zahlen. 121 00:05:34,870 --> 00:05:38,090 So, nachdem wir gültige Eingabe von der Benutzer, lassen Sie wandeln diese 122 00:05:38,090 --> 00:05:39,550 Dollarwert Cent. 123 00:05:39,550 --> 00:05:43,420 >> Psychisch, tun wir dies durch Multiplikation der Dollar-Wert um 100. 124 00:05:43,420 --> 00:05:46,400 Aber denken Sie daran, wegen der Floating-Point- Ungenauigkeit, damit wollen wir 125 00:05:46,400 --> 00:05:48,580 sicher, dass wir Sie mit dem richtigen Wert. 126 00:05:48,580 --> 00:05:52,510 Mit 100 multipliziert wird im Wesentlichen bewegen die Dezimalstelle um zwei Räume 127 00:05:52,510 --> 00:05:56,640 das Recht, Abhacken oder Abschneiden alles danach. 128 00:05:56,640 --> 00:05:59,430 >> Wenn Sie spielen, um mit etwas mehr Beispiele, werden Sie sehen, dass Sie nicht 129 00:05:59,430 --> 00:06:02,980 immer die richtige Zahl bekommen, wenn Sie Mit dieser Methode des Abschneidens. 130 00:06:02,980 --> 00:06:10,011 Beispielsweise 12,59 bis 100 gedruckt Dezimalstellen, die Ihnen 131 00:06:10,011 --> 00:06:14,050 12,5899, et cetera. 132 00:06:14,050 --> 00:06:18,460 Sie würden 12,58, wenn man abgeschnitten, 12.59 nicht, wie Sie benötigen. 133 00:06:18,460 --> 00:06:21,130 >> Stattdessen ist es am besten zu runden die Zahl zuerst. 134 00:06:21,130 --> 00:06:23,930 Zum Glück kommt mit dem C Funktion aufgerufen Runde. 135 00:06:23,930 --> 00:06:25,040 Es ist in der Mathematik-Bibliothek. 136 00:06:25,040 --> 00:06:28,540 >> Wenn Sie wissen wollen, wie zu Runde zu verwenden, dann können Sie rufen Sie die manuelle oder 137 00:06:28,540 --> 00:06:30,550 man-Seite für diese Funktion. 138 00:06:30,550 --> 00:06:35,510 Sie tun dies, indem Sie man, kurz für manuell, und dann die Funktion, die Sie 139 00:06:35,510 --> 00:06:36,620 nachschlagen möchten. 140 00:06:36,620 --> 00:06:42,280 So runden Sie man in das Terminal Befehlszeile öffnet das Handbuch. 141 00:06:42,280 --> 00:06:44,790 >> Es könnte ein wenig schwer zu entziffern sein, aber irgendwann werde 142 00:06:44,790 --> 00:06:45,660 bekommen den Dreh raus. 143 00:06:45,660 --> 00:06:48,290 Man-Seiten zeigen Ihnen, was die Funktion tut, und dann einige 144 00:06:48,290 --> 00:06:50,170 Einsatzmöglichkeiten es. 145 00:06:50,170 --> 00:06:52,340 Ich werde dich verlassen, um zu erkunden der Mann Seite für Runde. 146 00:06:52,340 --> 00:06:55,960 Aber wissen, dass Sie es verwenden, um runden der Wert während der Umwandlung von 147 00:06:55,960 --> 00:06:57,180 Dollar auf Cent. 148 00:06:57,180 --> 00:06:59,690 >> Runde wird Ihnen wieder eine Reihe vom Datentyp double. 149 00:06:59,690 --> 00:07:03,810 Und Sie können zu konvertieren oder gegossen es in einen int danach. 150 00:07:03,810 --> 00:07:04,980 Große. 151 00:07:04,980 --> 00:07:08,120 Inzwischen haben wir die Benutzer aufgefordert, für ein Geldbetrag, und 152 00:07:08,120 --> 00:07:09,520 wandelte sie in Cent. 153 00:07:09,520 --> 00:07:12,410 Jetzt können wir einen Algorithmus zu implementieren dass immer verwendet der 154 00:07:12,410 --> 00:07:14,640 größten Münzen zur Verfügung. 155 00:07:14,640 --> 00:07:17,790 >> Denken Sie daran, dass es mehrere Wege zur Umsetzung Gierig, wie 156 00:07:17,790 --> 00:07:21,200 es gibt mehrere Möglichkeiten sich zu nähern jeder Computer Science Problem. 157 00:07:21,200 --> 00:07:24,040 Das Finden der eleganteste Weg, das ist der spaßige Teil. 158 00:07:24,040 --> 00:07:27,030 In diesen p-Sets, wenn Ihr Programm nicht exakt meine 159 00:07:27,030 --> 00:07:29,190 Erklärung in den Komplettlösungen, das ist OK. 160 00:07:29,190 --> 00:07:32,870 Aber so stellen Sie sicher, dass es geht Check 50, erfüllt alle 161 00:07:32,870 --> 00:07:36,270 Anforderungen bilden die Vorgaben, und dass Sie prüfen, ob Ihre 162 00:07:36,270 --> 00:07:37,670 Ansatz hat gutes Design. 163 00:07:37,670 --> 00:07:39,750 >> In anderen Worten, wie effizient es? 164 00:07:39,750 --> 00:07:44,400 Zum Beispiel, wussten Sie geben sich wiederholende Codelinien, anstelle der Verwendung einer Schleife? 165 00:07:44,400 --> 00:07:47,580 Schreiben von Code mit besseren Design wird kommen Erfahrung, wie Sie Fortschritte 166 00:07:47,580 --> 00:07:49,192 durch den Kurs. 167 00:07:49,192 --> 00:07:52,350 >> Für diese durch zu gehen, werde ich gehen über Zwei Methoden, die verwendet werden können, 168 00:07:52,350 --> 00:07:53,540 Greedy vervollständigen. 169 00:07:53,540 --> 00:07:57,160 Das erste Verfahren ist ein Verfahren, das Schleifen und Subtraktion. 170 00:07:57,160 --> 00:08:00,050 Früher, als wir durch die gesprochen Greedy Verfahren, die wir kontinuierlich 171 00:08:00,050 --> 00:08:03,220 überprüft, ob wir ein Viertel nutzen könnten, und verwendet ein Viertel bis die 172 00:08:03,220 --> 00:08:05,670 Restwert betrug weniger als 0,25 $. 173 00:08:05,670 --> 00:08:07,990 >> Dies führt auch zu einer while-Schleife-Struktur. 174 00:08:07,990 --> 00:08:11,550 Während wir immer noch verwenden können ein Viertel, verwenden Sie eine. 175 00:08:11,550 --> 00:08:15,900 Das while-Schleife sollte so lange ausführen als der verbleibende Wert ist größer als 176 00:08:15,900 --> 00:08:18,240 oder gleich Cent Wert eines Quartals. 177 00:08:18,240 --> 00:08:20,970 Das heißt, Sie wollen auch verfolgen die restliche Geld 178 00:08:20,970 --> 00:08:24,570 Wert und aktualisieren Sie es jeden Zeit, dass Sie eine Münze zu verwenden. 179 00:08:24,570 --> 00:08:28,350 >> Denken Sie auch daran, dass am Ende, Ihre Ausgang ist die Anzahl der Münzen verwendet. 180 00:08:28,350 --> 00:08:32,400 Also eine andere Sache im Auge zu behalten ist die Anzahl der Münzen, die Sie verwenden. 181 00:08:32,400 --> 00:08:35,450 Sie können verfolgen, diese mit zu halten gut benannten Variablen. 182 00:08:35,450 --> 00:08:39,730 Und innerhalb des Körpers der Schleife würde sein, ein Update auf diese Variablen. 183 00:08:39,730 --> 00:08:43,400 Sobald die Schleife für das Quartal beendet, können Sie kann eine ähnliche für Groschen zu verwenden, 184 00:08:43,400 --> 00:08:47,180 und so weiter und so fort, bis Sie haben zurück alle Bargeld. 185 00:08:47,180 --> 00:08:50,640 >> Ich habe einige Pseudo-Code hier geschrieben Sie visualisieren, wie die 186 00:08:50,640 --> 00:08:55,080 Prozess, den wir diskutiert vielleicht übersetzen C. Wie Sie hier sehen, ich bin immer noch mit 187 00:08:55,080 --> 00:08:55,760 Englisch Wörter. 188 00:08:55,760 --> 00:08:56,830 Es ist noch nicht C. 189 00:08:56,830 --> 00:08:58,590 Aber ich habe den Gedankenstrich Dinge gestartet. 190 00:08:58,590 --> 00:09:00,690 Ich habe Bedingungen innen setzen meine Klammern. 191 00:09:00,690 --> 00:09:03,710 Es beginnt ein wenig aussehen bisschen wie Programmiercode. 192 00:09:03,710 --> 00:09:06,410 >> Pseudo-Code ist ein guter Weg um sich selbst zu beginnen. 193 00:09:06,410 --> 00:09:08,810 Visualisieren Sie Ihre Code vor Sie nach oben schauen Syntax. 194 00:09:08,810 --> 00:09:12,570 Da oft der schwierigste Teil über eine Problem wirklich zu verstehen, was 195 00:09:12,570 --> 00:09:14,450 genau Sie tun müssen. 196 00:09:14,450 --> 00:09:17,490 Wenn Sie das aufschreiben, dann ist es eine viel einfacher zu schauen die Funktionen 197 00:09:17,490 --> 00:09:20,390 Syntax und speziell auf Ihre Linie der Pseudo-Code 198 00:09:20,390 --> 00:09:23,760 >> Beachten Sie, dass dies nicht sein identisch mit der Art von Skelett 199 00:09:23,760 --> 00:09:25,560 Ihr Code, den Sie schreiben. 200 00:09:25,560 --> 00:09:27,640 Es gibt immer Optimierungen vorgenommen werden. 201 00:09:27,640 --> 00:09:31,250 Und vor allem in meinem Pseudo-Code hier finden Sie, wenn Sie es erkennen. 202 00:09:31,250 --> 00:09:33,380 >> Aber im Grunde der Prozess und die Art des Denkens 203 00:09:33,380 --> 00:09:35,250 ist nur, wie wir diskutiert. 204 00:09:35,250 --> 00:09:38,350 Die erste Zeile sagt uns, zu erhalten ein bestimmter Betrag in Dollar. 205 00:09:38,350 --> 00:09:40,960 Und der zweite sagt uns, wandelt es in Cent. 206 00:09:40,960 --> 00:09:45,640 >> Und dann, während Quartalen verwendet werden, haben wir wollen, um die Münze Zahl erhöhen und 207 00:09:45,640 --> 00:09:47,200 verringern Sie den Geldbetrag. 208 00:09:47,200 --> 00:09:49,880 Das Gleiche gilt für Groschen, Nickel, und Pfennige. 209 00:09:49,880 --> 00:09:53,230 Und schließlich, die Benutzer sagen, dass wir wir, wie viele Münzen verwendet. 210 00:09:53,230 --> 00:09:53,750 >> Große. 211 00:09:53,750 --> 00:09:55,680 Damit schließt die Schleife Methode. 212 00:09:55,680 --> 00:09:59,720 Jetzt reden wir über die modulare Methode zu sprechen, die mehr wie Division ist. 213 00:09:59,720 --> 00:10:03,630 >> Wir sind alle vertraut mit dem Plus, Minus, multiplizieren und dividieren Betreiber 214 00:10:03,630 --> 00:10:05,030 uns zur Verfügung. 215 00:10:05,030 --> 00:10:09,060 C hat alle vier Personen, aber auch die Modulo-Operator, dargestellt durch ein 216 00:10:09,060 --> 00:10:10,640 Prozent-Zeichen. 217 00:10:10,640 --> 00:10:11,940 Modulo ist wirklich ordentlich. 218 00:10:11,940 --> 00:10:14,880 Es gibt Ihnen den Rest aus Dividieren von zwei Zahlen. 219 00:10:14,880 --> 00:10:19,910 >> Denken Sie an die lange Teilung Meldung, wenn Sie teilen, sagen wir, 74 von drei? 220 00:10:19,910 --> 00:10:23,510 Beginnend mit der Zehnerstelle, würden Sie wissen, dass 3 geht in sieben 221 00:10:23,510 --> 00:10:27,620 zweimal, um eine sechs mit machen Rest ein. 222 00:10:27,620 --> 00:10:31,870 Sie würden zwei an der Spitze schreiben, und dann subtrahieren 6 aus sieben, die Durchführung über 223 00:10:31,870 --> 00:10:34,980 der Rest von 14 bis wiederholen Sie den Vorgang. 224 00:10:34,980 --> 00:10:39,410 >> Drei geht in 14 viermal 12 machen, mit Rest zwei. 225 00:10:39,410 --> 00:10:40,930 Und zwei nicht über mehr tragen. 226 00:10:40,930 --> 00:10:44,170 So würden zwei auf der linken Seite werden Boden als Rest besteht. 227 00:10:44,170 --> 00:10:46,800 >> Und das ist, was Modulo gibt, sie die Anzahl an der Unterseite. 228 00:10:46,800 --> 00:10:49,790 So 74 Modulo drei würden Sie zwei. 229 00:10:49,790 --> 00:10:52,980 Und 10 modulo zwei, gut, dass würde Ihnen Null. 230 00:10:52,980 --> 00:10:56,500 Da es keine restlichen wenn Sie durch zwei zu teilen 10. 231 00:10:56,500 --> 00:11:00,190 >> Sechs Modulo fünf, gut fünf geht in sechs mal. 232 00:11:00,190 --> 00:11:01,830 Und dann hat es ein übrig. 233 00:11:01,830 --> 00:11:04,720 Also sechs Modulo fünf ist eins. 234 00:11:04,720 --> 00:11:07,950 >> Dann, wenn Sie sieben Modulo haben neun, sieben Sie bekommen würde. 235 00:11:07,950 --> 00:11:09,840 Da neun ist größer als sieben. 236 00:11:09,840 --> 00:11:15,020 So ist es nicht teilen sie alle in sieben, Verlassen sieben als deine Antwort. 237 00:11:15,020 --> 00:11:18,340 >> Wenn Sie sich über ein wenig mehr Modulo denken, daran erinnern, dass es Ihnen die 238 00:11:18,340 --> 00:11:21,020 Rest nach der Sie etwas zu teilen. 239 00:11:21,020 --> 00:11:23,620 Überlegen Sie, wie Sie sein könnte Lage, es in Greedy verwenden. 240 00:11:23,620 --> 00:11:27,620 Nehmen wir an, der Benutzer fragt nach $ 400,11. 241 00:11:27,620 --> 00:11:30,470 Was ist ein Weg, um herauszufinden, wie viele Quartalen Sie, ohne zu müssen, 242 00:11:30,470 --> 00:11:32,360 zählen jeweils ein? 243 00:11:32,360 --> 00:11:37,480 >> Wenn Sie herausfinden, wie viele Viertel Sie verwenden, um 400,11 $ zu machen, wie viel 244 00:11:37,480 --> 00:11:38,880 Überreste ändern? 245 00:11:38,880 --> 00:11:42,110 Vielleicht eine Kombination hier zwischen Modulo und Division kommen würde, in 246 00:11:42,110 --> 00:11:46,200 praktisch, um Ihnen einen cool, elegant nähern, um das gierige Problem. 247 00:11:46,200 --> 00:11:49,030 Aber denken Sie daran, dass der EZB Regel immer noch gilt. 248 00:11:49,030 --> 00:11:51,610 Verwenden Sie immer die größte Münze möglich. 249 00:11:51,610 --> 00:11:55,340 >> Sobald Sie die Berechnung, wie getan viele Münzen zu bedienen, den letzten Schritt 250 00:11:55,340 --> 00:11:57,930 ist, drucken Sie die Anzahl der Münzen, die Sie berechnet. 251 00:11:57,930 --> 00:12:01,610 So weit, wir habe mit dem printf funktionieren ausschließlich für Streicher. 252 00:12:01,610 --> 00:12:05,200 Aber wenn Sie zum Ausdrucken eines In, oder wollen nur jede Art von Daten, die gespeichert ist 253 00:12:05,200 --> 00:12:09,200 in einer Variablen, haben Sie, um anzuzeigen, dass mit einem Platzhalter. 254 00:12:09,200 --> 00:12:12,400 >> Hier habe ich nur ein paar Tipps enthalten auf, wie man ausdrucken Werte. 255 00:12:12,400 --> 00:12:16,390 Wenn Sie eine ganze Zahl haben, würden Sie schreiben Sie Ihre String mit% d als 256 00:12:16,390 --> 00:12:17,450 Platzhalter. 257 00:12:17,450 --> 00:12:20,170 Nach dem Schlusskurs Marke, geben Sie ein Komma. 258 00:12:20,170 --> 00:12:24,530 Und dann in der Integer-setzen, dass Will an die Stelle von% d, wenn ausgedruckt. 259 00:12:24,530 --> 00:12:27,150 >> So nach dem Anzeigen der Anzahl von Münzen verwendet, sind Sie 260 00:12:27,150 --> 00:12:28,500 mit Greedy beendet. 261 00:12:28,500 --> 00:12:32,000 Stellen Sie sicher, dass alle Grenzfälle zu überprüfen, Aufräumen Stil ein wenig, und du bist 262 00:12:32,000 --> 00:12:33,350 ganz eingestellt, um zu speichern. 263 00:12:33,350 --> 00:12:36,000 Am Ende dieses Problems Satz, werden Sie mehr vertraut mit dem CS50 264 00:12:36,000 --> 00:12:39,940 Gerät, das Terminal und Schleife Strukturen und Variablen in C. 265 00:12:39,940 --> 00:12:41,470 >> Sie sind gut auf dem Weg. 266 00:12:41,470 --> 00:12:43,040 Die Lernkurve kann scheinen hart. 267 00:12:43,040 --> 00:12:44,690 Also nehmen Sie es Schritt für Schritt. 268 00:12:44,690 --> 00:12:47,110 Stellen Sie sicher, dass Sie schreiben aus Pseudo-Code vor dem Tauchen zu tief 269 00:12:47,110 --> 00:12:49,000 in unbekannte Syntax. 270 00:12:49,000 --> 00:12:52,030 >> Machen Sie eine Liste zu tun, und brechen die Zuordnung in kleinere, 271 00:12:52,030 --> 00:12:53,440 überschaubare Aufgaben. 272 00:12:53,440 --> 00:12:55,810 Entdecken Sie alle CS50 Ressourcen. 273 00:12:55,810 --> 00:12:58,270 Neben Vortrag rewatch diese durch zu gehen. 274 00:12:58,270 --> 00:12:59,790 >> Achten Sie genau auf Abschnitt. 275 00:12:59,790 --> 00:13:00,710 Schauen Sie sich die Shorts. 276 00:13:00,710 --> 00:13:04,640 Lesen Sie Ihre Fragen Mitschüler Diskutieren auf, und posten Sie Ihre eigenen. 277 00:13:04,640 --> 00:13:06,110 >> Viel Glück mit dem p-Set. 278 00:13:06,110 --> 00:13:07,200 Und Dank für das Aufpassen. 279 00:13:07,200 --> 00:13:08,690 Dies war gierig. 280 00:13:08,690 --> 00:13:15,691 >> [MUSIC SPIEL]