1 00:00:00,000 --> 00:00:10,216 >> [MUSIQUE JEU] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA CHAN: Maintenant nous allons aborder Greedy. 3 00:00:12,060 --> 00:00:14,390 Dites que vous êtes un caissier, et vous besoin de donner à vos clients une 4 00:00:14,390 --> 00:00:16,309 certaine quantité de changement. 5 00:00:16,309 --> 00:00:18,820 Eh bien, si vous étiez un caissier gourmand, vous voudriez garder tous 6 00:00:18,820 --> 00:00:20,040 les pièces de monnaie à vous-même. 7 00:00:20,040 --> 00:00:24,310 Donc vous donneriez le client leur changement en utilisant le moins de pièces que possible. 8 00:00:24,310 --> 00:00:27,640 >> Votre tâche pour cette p-ensemble est de mettre en œuvre Gourmand, un programme qui 9 00:00:27,640 --> 00:00:30,530 calcule le nombre minimum des pièces utilisées pour faire des 10 00:00:30,530 --> 00:00:31,940 une quantité donnée de changement. 11 00:00:31,940 --> 00:00:35,660 Avant de plonger dans la programmation concepts et la syntaxe C pour Greedy, 12 00:00:35,660 --> 00:00:38,410 Parlons d'abord à travers le Greedy programme, et voir si nous 13 00:00:38,410 --> 00:00:40,570 peut identifier un algorithme. 14 00:00:40,570 --> 00:00:42,560 Rappelez-vous que d'un algorithme est juste un ensemble de 15 00:00:42,560 --> 00:00:44,680 instructions pour résoudre les problèmes. 16 00:00:44,680 --> 00:00:48,060 Un algorithme de Greedy ne serait qu'un un ensemble de règles et étapes logiques 17 00:00:48,060 --> 00:00:49,000 nous pouvons suivre. 18 00:00:49,000 --> 00:00:52,510 Et ils seront toujours donner le minimum nombre de pièces nécessaires. 19 00:00:52,510 --> 00:00:54,340 >> La première chose que vous devez savoir, c'est combien le changement 20 00:00:54,340 --> 00:00:55,710 est due à la clientèle. 21 00:00:55,710 --> 00:00:58,560 Pour cet exemple, disons $ 0,32. 22 00:00:58,560 --> 00:01:00,880 Il existe de nombreuses façons de récupérer $ 0,32. 23 00:01:00,880 --> 00:01:03,950 Vous pouvez utiliser, par exemple, 32 centimes. 24 00:01:03,950 --> 00:01:07,560 Ou si, vous étiez un peu plus gourmand en le choix de vos pièces, vous pouvez utiliser 25 00:01:07,560 --> 00:01:11,730 cinq pièces de monnaie au lieu de 32 en donnant le client trois dimes - 26 00:01:11,730 --> 00:01:14,690 $ 0,10 chacune - et deux sous - $ 0,01 chacune. 27 00:01:14,690 --> 00:01:16,830 >> Mais pouvons-nous faire mieux que cinq pièces de monnaie? 28 00:01:16,830 --> 00:01:18,990 Pouvons-nous être encore plus gourmande? 29 00:01:18,990 --> 00:01:20,410 Très probablement. 30 00:01:20,410 --> 00:01:23,360 >> Continuons à marcher à travers le programme avide, et voir. 31 00:01:23,360 --> 00:01:27,090 Si votre objectif final est d'utiliser quelques pièces de monnaie que possible, il serait plus 32 00:01:27,090 --> 00:01:29,680 prudent d'utiliser la plus grande pièces possibles. 33 00:01:29,680 --> 00:01:32,410 Vous préférez donnez un quart sauvegarder - $ 0,25 chacun - 34 00:01:32,410 --> 00:01:33,640 de cinq cents - 35 00:01:33,640 --> 00:01:34,940 $ 0,05 chacune. 36 00:01:34,940 --> 00:01:38,260 Alors peut-être notre règle de régie Greedy peut être de toujours utiliser le 37 00:01:38,260 --> 00:01:40,590 plus grande pièce possible. 38 00:01:40,590 --> 00:01:43,640 En rupture de quartiers, dimes, nickels, et pièces de monnaie, notre 39 00:01:43,640 --> 00:01:44,830 plus grande pièce est le trimestre. 40 00:01:44,830 --> 00:01:47,690 Nous allons donc essayer de les utiliser en premier. 41 00:01:47,690 --> 00:01:49,270 >> Retour à notre $ 0,32. 42 00:01:49,270 --> 00:01:52,455 Pouvons-nous utiliser un quart de donner le client $ 0,32? 43 00:01:52,455 --> 00:01:52,930 Oui. 44 00:01:52,930 --> 00:01:55,530 Cela nous laisse avec $ 0,07 gauche. 45 00:01:55,530 --> 00:01:57,440 >> Peut-on utiliser un autre trimestre? 46 00:01:57,440 --> 00:02:00,100 Non, parce que 25 est supérieur à sept ans. 47 00:02:00,100 --> 00:02:03,470 Nous ne voulons pas donner au client pas plus que nous leur devons. 48 00:02:03,470 --> 00:02:04,190 >> Très bien. 49 00:02:04,190 --> 00:02:07,370 Maintenant que nous avons épuisé nos quartiers, Passons à la deuxième plus grande 50 00:02:07,370 --> 00:02:09,090 pièce de monnaie, le sou. 51 00:02:09,090 --> 00:02:12,400 Pouvons-nous utiliser un sou à donner à la client leur $ 0,07 dos? 52 00:02:12,400 --> 00:02:15,100 N, puisque 10 est plus grande que sept. 53 00:02:15,100 --> 00:02:18,400 >> Alors la prochaine plus grande pièce accessible pour nous, c'est nickel. 54 00:02:18,400 --> 00:02:19,590 Pouvons-nous utiliser un nickel? 55 00:02:19,590 --> 00:02:20,250 Oui. 56 00:02:20,250 --> 00:02:22,940 Et puis nous aurions $ 0,02 reste. 57 00:02:22,940 --> 00:02:24,910 >> Nous ne pouvons pas utiliser un nickel pour retourner $ 0,02. 58 00:02:24,910 --> 00:02:29,510 Alors nous sommes la dernière pièce à notre disposition - le sou. 59 00:02:29,510 --> 00:02:33,090 Et après l'utilisation de deux cents, nous serions gauche avec zéro cent, ce qui signifie que 60 00:02:33,090 --> 00:02:36,350 nous avons payé avec succès retour à l'utilisateur son changement devait 61 00:02:36,350 --> 00:02:37,830 en utilisant seulement quatre pièces - 62 00:02:37,830 --> 00:02:40,410 quart, nickel, et deux sous. 63 00:02:40,410 --> 00:02:43,880 >> Vous pouvez exécuter la solution de personnel pour voir si notre règle et le processus d'administration a donné 64 00:02:43,880 --> 00:02:44,770 nous la bonne réponse. 65 00:02:44,770 --> 00:02:47,820 Pour la plupart des ensembles de problèmes, vous serez en mesure pour exécuter la solution de personnel pour voir comment 66 00:02:47,820 --> 00:02:49,900 votre propre programme devrait fonctionner. 67 00:02:49,900 --> 00:02:53,390 Et des instructions spécifiques seront dans le problème définit les spécifications. 68 00:02:53,390 --> 00:02:57,180 >> Une fois que nous courons la solution du personnel, il nous invite à quel point le changement est dû 69 00:02:57,180 --> 00:02:59,790 noter qu'il demande le Montant en dollars. 70 00:02:59,790 --> 00:03:03,580 Nous entrée $ 0,32, 0,32. 71 00:03:03,580 --> 00:03:06,830 Il nous dit que quatre pièces sont dues, compatible avec notre réponse. 72 00:03:06,830 --> 00:03:08,160 Fantastique. 73 00:03:08,160 --> 00:03:10,210 >> Alors maintenant, nous allons commencer la recherche à la mise en œuvre 74 00:03:10,210 --> 00:03:11,780 de l'algorithme glouton. 75 00:03:11,780 --> 00:03:13,410 Nous savons quelques choses. 76 00:03:13,410 --> 00:03:17,280 Un, que nous devons demander à l' l'utilisateur pour une quantité de changement. 77 00:03:17,280 --> 00:03:20,830 >> Deux, que nous voulons suivre notre régissant règle de toujours utiliser le 78 00:03:20,830 --> 00:03:22,990 plus grande pièce possible. 79 00:03:22,990 --> 00:03:26,370 Et trois, que nous avons besoin de garder une trace de combien de pièces que nous utilisons. 80 00:03:26,370 --> 00:03:30,040 Parce que, enfin, nous devons imprimer le nombre de pièces que nous. 81 00:03:30,040 --> 00:03:33,270 >> Tout d'abord, demander à l'utilisateur pour une quantité de changement. 82 00:03:33,270 --> 00:03:36,880 Si vous travaillez dans l'entrée d'utilisateur, assurez- assurer que vous pensez de l'ensemble des 83 00:03:36,880 --> 00:03:40,010 exigences de l'entrée, et seulement accepter l'entrée qui répond à ceux qui 84 00:03:40,010 --> 00:03:40,880 exigences. 85 00:03:40,880 --> 00:03:44,100 Dans ce cas, nous voulons faire face à une valeur monétaire en dollars. 86 00:03:44,100 --> 00:03:48,230 >> Les fonctions GetFloat et getInt assurer que l'entrée est numérique. 87 00:03:48,230 --> 00:03:51,700 Mais l'utilisateur est en mesure d'entrée des valeurs numériques négatives. 88 00:03:51,700 --> 00:03:56,260 Alors, n'oubliez pas d'utiliser uniquement non-négatif entrées, ce qui inclut tous négatifs 89 00:03:56,260 --> 00:03:58,370 chiffres et zéro. 90 00:03:58,370 --> 00:04:00,260 >> Dans ce cas, l'entrée devrait être un flotteur. 91 00:04:00,260 --> 00:04:01,960 En d'autres termes, un nombre décimal. 92 00:04:01,960 --> 00:04:06,000 Parce que le jeu de problème spécification exige vous demandez entrée en dollars. 93 00:04:06,000 --> 00:04:09,540 >> Mais en C, les valeurs à virgule flottante ne peut pas être représentés avec précision. 94 00:04:09,540 --> 00:04:12,490 Parce qu'il existe un nombre fini de bits avec lequel 95 00:04:12,490 --> 00:04:14,870 représenter des valeurs infinies. 96 00:04:14,870 --> 00:04:16,860 Prenez le nombre 0,1. 97 00:04:16,860 --> 00:04:21,140 Si je devais vous demander d'écrire par 0,1 la main à la décimale centième, 98 00:04:21,140 --> 00:04:24,380 vous pouvez écrire un 1, suivi par 99 zéros. 99 00:04:24,380 --> 00:04:27,080 Nous nous attendons à ce que notre ordinateur serait imprimer exactement la même chose 100 00:04:27,080 --> 00:04:28,330 si nous avons demandé à. 101 00:04:28,330 --> 00:04:30,320 >> Voyons donc ce qu'il fait. 102 00:04:30,320 --> 00:04:33,150 Je vais passer en revue les valeurs d'impression vers la fin de cette promenade à travers. 103 00:04:33,150 --> 00:04:39,270 Pour l'instant, voyons ici que f% est un espace réservé pour un point flottant. 104 00:04:39,270 --> 00:04:44,530 Mais nous précisons au préalable que nous voulons 100 décimales affichées, puis une nouvelle 105 00:04:44,530 --> 00:04:46,506 ligne pour la mise en forme plus agréable. 106 00:04:46,506 --> 00:04:51,710 >> Après la chaîne, nous choisissons 0,1 comme le flottons que nous voulons imprimer. 107 00:04:51,710 --> 00:04:56,680 Et le résultat, une une, suivie par des zéros, mais un 108 00:04:56,680 --> 00:04:57,980 le groupe entier de nombres. 109 00:04:57,980 --> 00:05:00,470 Certainement pas comme prévu. 110 00:05:00,470 --> 00:05:03,490 >> Virgule flottante imprécision peut introduire erreurs d'arrondi dans votre 111 00:05:03,490 --> 00:05:07,330 calculs que vous voulez veulent absolument éviter. 112 00:05:07,330 --> 00:05:10,900 Si vous voulez voir plus d'exemples, vous peuvent télécharger imprecision.ce de la 113 00:05:10,900 --> 00:05:14,880 marcher dans le code, qui est un simple programme qui demande à flotter et imprime 114 00:05:14,880 --> 00:05:17,550 Retour à la décimale centième. 115 00:05:17,550 --> 00:05:20,340 Bien sûr, si vous voulez montrer plus ou moins décimales 116 00:05:20,340 --> 00:05:22,410 vous pouvez modifier vous-même. 117 00:05:22,410 --> 00:05:25,740 >> Comme vous le verrez, bien que la différence entre les deux est faible, quand vous obtenez 118 00:05:25,740 --> 00:05:30,460 pour multiplier et additionner les flotteurs, qui différence peut éventuellement ajouter. 119 00:05:30,460 --> 00:05:31,790 Retour à Greedy. 120 00:05:31,790 --> 00:05:34,870 Nous voulons éviter les erreurs d'arrondi en traitant avec des nombres entiers. 121 00:05:34,870 --> 00:05:38,090 Donc, après que nous obtenions entrée valide de l'utilisateur, nous allons convertir ce 122 00:05:38,090 --> 00:05:39,550 valeur du dollar pour cents. 123 00:05:39,550 --> 00:05:43,420 >> Mentalement, nous faisons cela en multipliant la valeur du dollar par 100. 124 00:05:43,420 --> 00:05:46,400 Mais rappelez-vous, en raison de virgule flottante imprécision, nous voulons faire 125 00:05:46,400 --> 00:05:48,580 vous que nous utilisons la bonne valeur. 126 00:05:48,580 --> 00:05:52,510 En multipliant par 100 sera essentiellement déplacer la décimale deux espaces à 127 00:05:52,510 --> 00:05:56,640 la droite, coupant ou en tronquant rien après. 128 00:05:56,640 --> 00:05:59,430 >> Si vous jouez avec un peu plus de exemples, vous verrez que vous ne serez pas 129 00:05:59,430 --> 00:06:02,980 toujours eu le bon nombre si vous utiliser cette méthode de troncature. 130 00:06:02,980 --> 00:06:10,011 Par exemple, 12,59 imprimé à 100 décimales, qui vous donne 131 00:06:10,011 --> 00:06:14,050 12,5899, et cetera. 132 00:06:14,050 --> 00:06:18,460 Vous obtiendrez 12.58 si vous tronquées, pas 12.59, comme vous avez besoin. 133 00:06:18,460 --> 00:06:21,130 >> Au lieu de cela, il est préférable d'arrondir le premier numéro. 134 00:06:21,130 --> 00:06:23,930 Heureusement, C est livré avec la fonction appelée Round. 135 00:06:23,930 --> 00:06:25,040 C'est dans la bibliothèque de mathématiques. 136 00:06:25,040 --> 00:06:28,540 >> Si vous voulez savoir comment utiliser ronde, alors vous pouvez afficher le manuel ou 137 00:06:28,540 --> 00:06:30,550 page de manuel de cette fonction. 138 00:06:30,550 --> 00:06:35,510 Vous faites cela en tapant man, court pour manuel, puis la fonction que vous 139 00:06:35,510 --> 00:06:36,620 envie de regarder vers le haut. 140 00:06:36,620 --> 00:06:42,280 Donc, écrire homme rond dans le terminal ligne de commande fera apparaître le manuel. 141 00:06:42,280 --> 00:06:44,790 >> Il pourrait être un peu difficile à déchiffrer, mais vous finirez 142 00:06:44,790 --> 00:06:45,660 obtenir le coup de lui. 143 00:06:45,660 --> 00:06:48,290 Les pages de manuel vous montrent ce que la fonction fait, et puis certains 144 00:06:48,290 --> 00:06:50,170 utilisations possibles de l'informatique. 145 00:06:50,170 --> 00:06:52,340 Je vous laisse à explorer la page de manuel pour la série. 146 00:06:52,340 --> 00:06:55,960 Mais sachez que vous pouvez l'utiliser pour arrondir la valeur au cours de votre conversion de 147 00:06:55,960 --> 00:06:57,180 dollars pour cents. 148 00:06:57,180 --> 00:06:59,690 >> Round vous redonner un certain nombre du type de données double. 149 00:06:59,690 --> 00:07:03,810 Et vous pouvez convertir ou fonte à un int après. 150 00:07:03,810 --> 00:07:04,980 Grand. 151 00:07:04,980 --> 00:07:08,120 A présent, nous avons incité les utilisateurs pour un montant monétaire, et 152 00:07:08,120 --> 00:07:09,520 converti en cents. 153 00:07:09,520 --> 00:07:12,410 Maintenant, nous pouvons mettre en œuvre un algorithme qui utilise toujours le 154 00:07:12,410 --> 00:07:14,640 grandes pièces disponibles. 155 00:07:14,640 --> 00:07:17,790 >> Gardez à l'esprit qu'il existe plusieurs moyens à mettre en œuvre Greedy, comme 156 00:07:17,790 --> 00:07:21,200 Il ya plusieurs façons d'aborder tous les problèmes de la science informatique. 157 00:07:21,200 --> 00:07:24,040 Trouver le moyen le plus élégant, c'est la partie amusante. 158 00:07:24,040 --> 00:07:27,030 Tout au long de ces p-ensembles, si votre programme ne correspond pas exactement à mon 159 00:07:27,030 --> 00:07:29,190 explication dans les procédures pas à pas, c'est OK. 160 00:07:29,190 --> 00:07:32,870 Mais assurez-vous juste qu'il passe consultez 50, satisfait toutes les 161 00:07:32,870 --> 00:07:36,270 exigences constituent les spécifications, et que vous considérez que votre 162 00:07:36,270 --> 00:07:37,670 approche a une bonne conception. 163 00:07:37,670 --> 00:07:39,750 >> En d'autres termes, comment efficace est-il? 164 00:07:39,750 --> 00:07:44,400 Par exemple, avez-vous tapez répétitif des lignes de code, au lieu d'utiliser une boucle? 165 00:07:44,400 --> 00:07:47,580 L'écriture de code avec une meilleure conception sera venir faire l'expérience que vous progressez 166 00:07:47,580 --> 00:07:49,192 dans le cours. 167 00:07:49,192 --> 00:07:52,350 >> Pour cette promenade à travers, je vais aller sur Deux méthodes peuvent être utilisées pour 168 00:07:52,350 --> 00:07:53,540 compléter Greedy. 169 00:07:53,540 --> 00:07:57,160 La première méthode est une méthode utilisant boucles et soustraction. 170 00:07:57,160 --> 00:08:00,050 Plus tôt, lorsque nous avons parlé à travers le Processus gourmand, nous en continu 171 00:08:00,050 --> 00:08:03,220 vérifié si nous pouvions utiliser un quart, et utilisé un quart jusqu'à ce que le 172 00:08:03,220 --> 00:08:05,670 valeur résiduelle était inférieure à 0,25 $. 173 00:08:05,670 --> 00:08:07,990 >> Cela se traduit bien à un tandis que la structure de boucle. 174 00:08:07,990 --> 00:08:11,550 Alors que nous pouvons toujours utiliser un quart, utiliser un. 175 00:08:11,550 --> 00:08:15,900 Qui boucle while doit exécuter tant que la valeur restante est supérieure à 176 00:08:15,900 --> 00:08:18,240 ou égale à la valeur de cent d'un trimestre. 177 00:08:18,240 --> 00:08:20,970 Cela signifie que vous aurez également besoin de garder une trace de l'argent qui reste 178 00:08:20,970 --> 00:08:24,570 valeur, et mettre à jour tous les fois que vous utilisez une pièce de monnaie. 179 00:08:24,570 --> 00:08:28,350 >> Rappelez-vous aussi que, à la fin, votre sortie est le nombre de pièces utilisées. 180 00:08:28,350 --> 00:08:32,400 Donc, une autre chose à garder une trace de est le nombre de pièces que vous utilisez. 181 00:08:32,400 --> 00:08:35,450 Vous pouvez suivre les utilisant variables bien nommé. 182 00:08:35,450 --> 00:08:39,730 Et dans le corps de la boucle serait une mise à jour de ces variables. 183 00:08:39,730 --> 00:08:43,400 Une fois la boucle de trimestre se termine, vous peut utiliser un semblable pour dimes, 184 00:08:43,400 --> 00:08:47,180 et ainsi de suite et ainsi de suite, jusqu'à ce que vous avez retourné toutes les espèces. 185 00:08:47,180 --> 00:08:50,640 >> J'ai écrit quelques pseudo-code ici à vous aider à visualiser à quel point la 186 00:08:50,640 --> 00:08:55,080 processus, nous avons discuté pourrait se traduire par C. Comme vous le voyez ici, je suis toujours à l'aide 187 00:08:55,080 --> 00:08:55,760 Mots anglais. 188 00:08:55,760 --> 00:08:56,830 Il n'est pas encore C. 189 00:08:56,830 --> 00:08:58,590 Mais j'ai commencé à les choses tiret. 190 00:08:58,590 --> 00:09:00,690 J'ai mis des conditions à l'intérieur mes parenthèses. 191 00:09:00,690 --> 00:09:03,710 Il commence à regarder un peu peu comme le code de programmation. 192 00:09:03,710 --> 00:09:06,410 >> Pseudo-code est un excellent moyen à vous procurer commencé. 193 00:09:06,410 --> 00:09:08,810 Visualisez votre code avant vous regardez la syntaxe. 194 00:09:08,810 --> 00:09:12,570 Parce que souvent la partie la plus difficile sur un problème est vraiment comprendre ce 195 00:09:12,570 --> 00:09:14,450 exactement que vous devez faire. 196 00:09:14,450 --> 00:09:17,490 Une fois que vous écrivez que vers le bas, alors c'est une beaucoup plus facile de voir les fonctions 197 00:09:17,490 --> 00:09:20,390 et la syntaxe spécifique à votre ligne de pseudo-code 198 00:09:20,390 --> 00:09:23,760 >> Gardez à l'esprit que ce ne serait pas identique à la forme de squelette de 199 00:09:23,760 --> 00:09:25,560 votre code que vous écrivez. 200 00:09:25,560 --> 00:09:27,640 Il ya toujours des optimisations à réaliser. 201 00:09:27,640 --> 00:09:31,250 Et surtout dans mon pseudo-code ici, voyez si vous pouvez repérer. 202 00:09:31,250 --> 00:09:33,380 >> Mais l'essentiel du processus et la façon de penser 203 00:09:33,380 --> 00:09:35,250 est juste que nous avons discuté. 204 00:09:35,250 --> 00:09:38,350 La première ligne nous dit d'obtenir un certain montant en dollars. 205 00:09:38,350 --> 00:09:40,960 Et le second nous dit de convertir en cents. 206 00:09:40,960 --> 00:09:45,640 >> Et puis, tout en quarts peuvent être utilisés, nous vouloir augmenter le nombre de pièces et 207 00:09:45,640 --> 00:09:47,200 diminuer le montant de trésorerie. 208 00:09:47,200 --> 00:09:49,880 Idem pour dimes, nickels, et pièces de monnaie. 209 00:09:49,880 --> 00:09:53,230 Et enfin, nous disons l'utilisateur le nombre de pièces que nous avons utilisé. 210 00:09:53,230 --> 00:09:53,750 >> Grand. 211 00:09:53,750 --> 00:09:55,680 Alors que conclut la méthode de la boucle. 212 00:09:55,680 --> 00:09:59,720 Maintenant, nous allons parler de la méthode modulaire, qui ressemble plus à la division. 213 00:09:59,720 --> 00:10:03,630 >> Nous sommes tous familiers avec le plus, moins, multiplier et diviser des opérateurs 214 00:10:03,630 --> 00:10:05,030 à notre disposition. 215 00:10:05,030 --> 00:10:09,060 C a tous les quatre de ceux-ci, mais a aussi l'opérateur modulo, représenté par un 216 00:10:09,060 --> 00:10:10,640 signe pour cent. 217 00:10:10,640 --> 00:10:11,940 Modulo est vraiment bien. 218 00:10:11,940 --> 00:10:14,880 Il vous donne le reste de la division de deux nombres. 219 00:10:14,880 --> 00:10:19,910 >> Rappelez-vous le message de division longue quand vous divisez, par exemple, 74 par trois? 220 00:10:19,910 --> 00:10:23,510 A partir de la position des dizaines, vous savent que 3 va dans sept 221 00:10:23,510 --> 00:10:27,620 deux fois pour une durée de six à reste un. 222 00:10:27,620 --> 00:10:31,870 Vous écririez deux en haut, puis soustraire 6 de sept, portant sur 223 00:10:31,870 --> 00:10:34,980 le reste de 14 à répéter le processus. 224 00:10:34,980 --> 00:10:39,410 >> Trois va en 14 quatre fois à faire 12, avec le reste deux. 225 00:10:39,410 --> 00:10:40,930 Et deux ne portent pas sur plus. 226 00:10:40,930 --> 00:10:44,170 Donc deux serait laissé à la bas que le reste. 227 00:10:44,170 --> 00:10:46,800 >> Et c'est ce qui donne modulo, vous ce nombre en bas. 228 00:10:46,800 --> 00:10:49,790 Donc 74 modulo trois donneriez-vous deux. 229 00:10:49,790 --> 00:10:52,980 Et 10 modulo deux, bien que donnerait de vous concentrer. 230 00:10:52,980 --> 00:10:56,500 Parce qu'il n'y a pas de reste quand on divise 10 par deux. 231 00:10:56,500 --> 00:11:00,190 >> Six modulo cinq, bien cinq passe en six fois. 232 00:11:00,190 --> 00:11:01,830 Et puis il a un reste. 233 00:11:01,830 --> 00:11:04,720 Donc six modulo cinq est un. 234 00:11:04,720 --> 00:11:07,950 >> Alors si vous avez sept modulo neuf, vous obtiendrez sept. 235 00:11:07,950 --> 00:11:09,840 Parce que neuf est plus grand que sept ans. 236 00:11:09,840 --> 00:11:15,020 Donc, il ne divise pas le tout dans sept, laissant sept comme votre réponse. 237 00:11:15,020 --> 00:11:18,340 >> Si vous pensez modulo un peu plus, n'oubliez pas que c'est vous le donne 238 00:11:18,340 --> 00:11:21,020 reste après vous divisez quelque chose. 239 00:11:21,020 --> 00:11:23,620 Pensez à comment vous pourriez être capable de l'utiliser dans Greedy. 240 00:11:23,620 --> 00:11:27,620 Disons que l'utilisateur demande $ 400,11. 241 00:11:27,620 --> 00:11:30,470 Qu'est-ce que c'est une façon de savoir combien de trimestres dont vous avez besoin sans avoir à 242 00:11:30,470 --> 00:11:32,360 compter chacun? 243 00:11:32,360 --> 00:11:37,480 >> Une fois que vous avez compris combien quarts vous pouvez utiliser pour faire $ 400,11, combien 244 00:11:37,480 --> 00:11:38,880 changer restes? 245 00:11:38,880 --> 00:11:42,110 Peut-être une combinaison entre ici modulo et la division viendraient 246 00:11:42,110 --> 00:11:46,200 pratique pour vous donner un endroit frais, élégant aborder le problème Greedy. 247 00:11:46,200 --> 00:11:49,030 Mais n'oubliez pas que la gouvernance règle s'applique toujours. 248 00:11:49,030 --> 00:11:51,610 Toujours utiliser la plus grande pièce possible. 249 00:11:51,610 --> 00:11:55,340 >> Une fois que vous avez fait le calcul de la façon dont de pièces à utiliser, la dernière étape 250 00:11:55,340 --> 00:11:57,930 est d'imprimer le nombre de pièces que vous avez calculé. 251 00:11:57,930 --> 00:12:01,610 Jusqu'à présent, nous avons utilisé le printf fonctionner uniquement pour les chaînes. 252 00:12:01,610 --> 00:12:05,200 Mais lorsque vous souhaitez imprimer un In, ou n'importe quel type de données qui est stocké 253 00:12:05,200 --> 00:12:09,200 dans une variable, vous devez indiquer que l'utilisation d'un espace réservé. 254 00:12:09,200 --> 00:12:12,400 >> Ici, j'ai inclus que quelques conseils sur la façon d'imprimer des valeurs. 255 00:12:12,400 --> 00:12:16,390 Si vous avez un nombre entier, vous le feriez écrire votre chaîne en utilisant% d comme un 256 00:12:16,390 --> 00:12:17,450 espace réservé. 257 00:12:17,450 --> 00:12:20,170 Après la cotation de fermeture marque, entrez une virgule. 258 00:12:20,170 --> 00:12:24,530 Et puis mettre dans l'entier qui sera prendre la place de% d fois imprimée. 259 00:12:24,530 --> 00:12:27,150 >> Donc, après l'affichage du numéro des pièces utilisées, vous êtes 260 00:12:27,150 --> 00:12:28,500 fini avec Greedy. 261 00:12:28,500 --> 00:12:32,000 Assurez-vous de vérifier tous les cas de coin, ranger votre style un peu, et vous êtes 262 00:12:32,000 --> 00:12:33,350 le tout de se soumettre. 263 00:12:33,350 --> 00:12:36,000 A la fin de cette série de problèmes, vous allez être plus familier avec le CS50 264 00:12:36,000 --> 00:12:39,940 appareil, le terminal, et la boucle et les variables dans les structures C. 265 00:12:39,940 --> 00:12:41,470 >> Vous êtes bien sur votre chemin. 266 00:12:41,470 --> 00:12:43,040 La courbe d'apprentissage peut sembler difficile. 267 00:12:43,040 --> 00:12:44,690 Donc prendre étape par étape. 268 00:12:44,690 --> 00:12:47,110 Assurez-vous que vous écrivez pseudo-code avant de plonger trop profondément 269 00:12:47,110 --> 00:12:49,000 en syntaxe inconnu. 270 00:12:49,000 --> 00:12:52,030 >> Faire une liste à faire, et briser la affectation en plus petit, plus 271 00:12:52,030 --> 00:12:53,440 tâches gérables. 272 00:12:53,440 --> 00:12:55,810 Explorez toutes les ressources de CS50. 273 00:12:55,810 --> 00:12:58,270 En plus de la conférence, rewatch cette promenade à travers. 274 00:12:58,270 --> 00:12:59,790 >> Portez une attention particulière à la section. 275 00:12:59,790 --> 00:13:00,710 Découvrez les shorts. 276 00:13:00,710 --> 00:13:04,640 Lisez les questions de vos camarades de classe Discutez sur, et poster le vôtre. 277 00:13:04,640 --> 00:13:06,110 >> Bonne chance avec le p-ensemble. 278 00:13:06,110 --> 00:13:07,200 Et merci pour regarder. 279 00:13:07,200 --> 00:13:08,690 Ce fut avide. 280 00:13:08,690 --> 00:13:15,691 >> [MUSIQUE JEU]