1 00:00:00,000 --> 00:00:10,216 >> [Музика грає] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA Чан: Тепер давайте візьмемося Жадібний. 3 00:00:12,060 --> 00:00:14,390 Скажи, що ти касир, і ви повинні дати вашому клієнтові 4 00:00:14,390 --> 00:00:16,309 Певних змін. 5 00:00:16,309 --> 00:00:18,820 Ну, якщо б ви були жадібними касир, ви хотіли б зберегти всі 6 00:00:18,820 --> 00:00:20,040 монети до себе. 7 00:00:20,040 --> 00:00:24,310 Таким чином, ви б дати клієнтові їх зміну використовуючи як кілька монет, наскільки це можливо. 8 00:00:24,310 --> 00:00:27,640 >> Ваше завдання в цьому р-набору полягає в реалізації Жадібний, програма, яка 9 00:00:27,640 --> 00:00:30,530 обчислює мінімальну кількість монет, що використовуються, щоб зробити будь 10 00:00:30,530 --> 00:00:31,940 враховуючи кількість змін. 11 00:00:31,940 --> 00:00:35,660 Перед зануренням у програмуванні поняття і C синтаксис Жадібний, 12 00:00:35,660 --> 00:00:38,410 давайте спочатку поговоримо через Жадібний Програма, і подивитися, якщо ми 13 00:00:38,410 --> 00:00:40,570 може визначити алгоритм. 14 00:00:40,570 --> 00:00:42,560 Пам'ятайте, що алгоритм це просто набір 15 00:00:42,560 --> 00:00:44,680 інструкції щодо вирішення проблем. 16 00:00:44,680 --> 00:00:48,060 Алгоритм Жадібний буде просто набір логічних правил і заходів, які 17 00:00:48,060 --> 00:00:49,000 ми можемо слідувати. 18 00:00:49,000 --> 00:00:52,510 І вони завжди дадуть мінімум кількість монет, необхідних. 19 00:00:52,510 --> 00:00:54,340 >> Перше, що ви повинні були б знати, як багато змін 20 00:00:54,340 --> 00:00:55,710 є зобов'язанням щодо клієнта. 21 00:00:55,710 --> 00:00:58,560 Для цього прикладу, скажімо, $ 0.32. 22 00:00:58,560 --> 00:01:00,880 Є багато способів, щоб отримати назад $ 0.32. 23 00:01:00,880 --> 00:01:03,950 Можна використовувати, наприклад, 32 копійки. 24 00:01:03,950 --> 00:01:07,560 Або, якщо ви були трохи жадібними в виборі монет, ви можете використовувати 25 00:01:07,560 --> 00:01:11,730 п'ять монет замість 32, даючи Клієнт три десять центів - 26 00:01:11,730 --> 00:01:14,690 Кожен $ 0.10 - і дві копійки - $ 0.01 кожен. 27 00:01:14,690 --> 00:01:16,830 >> Але ми можемо зробити краще, ніж п'ять монет? 28 00:01:16,830 --> 00:01:18,990 Чи можемо ми бути навіть більш жадібними? 29 00:01:18,990 --> 00:01:20,410 Цілком можливо. 30 00:01:20,410 --> 00:01:23,360 >> Давайте продовжимо ходити через Жадібний програма, і подивитися. 31 00:01:23,360 --> 00:01:27,090 Якщо ваш кінцева мета полягає у використанні кілька монет як це можливо, то це було б найбільш 32 00:01:27,090 --> 00:01:29,680 розумно використовувати найбільшим можливі монети. 33 00:01:29,680 --> 00:01:32,410 Ви б краще дати однієї чверті назад - $ 0.25 кожна - 34 00:01:32,410 --> 00:01:33,640 ніж за п'ять нікель - 35 00:01:33,640 --> 00:01:34,940 $ 0.05 кожен. 36 00:01:34,940 --> 00:01:38,260 Так що, можливо наш керівний правило для Жадібний може бути, щоб завжди використовувати 37 00:01:38,260 --> 00:01:40,590 максимально можливе монета. 38 00:01:40,590 --> 00:01:43,640 З кварталів, десять центів, нікель, і пенні, наш 39 00:01:43,640 --> 00:01:44,830 Найбільший монета є квартал. 40 00:01:44,830 --> 00:01:47,690 Таким чином, ми постараємося використовувати їх в першу чергу. 41 00:01:47,690 --> 00:01:49,270 >> Повернемося до нашого $ 0.32. 42 00:01:49,270 --> 00:01:52,455 Чи можемо ми використовувати чверть, щоб дати клієнт $ 0.32? 43 00:01:52,455 --> 00:01:52,930 Так. 44 00:01:52,930 --> 00:01:55,530 Це залишило б нас з $ 0,07 залишили. 45 00:01:55,530 --> 00:01:57,440 >> Чи можемо ми використовувати ще чверть? 46 00:01:57,440 --> 00:02:00,100 Ні, тому що 25 більше, ніж сім. 47 00:02:00,100 --> 00:02:03,470 Ми не хочемо, щоб дати клієнтові більше, ніж ми повинні. 48 00:02:03,470 --> 00:02:04,190 >> Добре. 49 00:02:04,190 --> 00:02:07,370 Тепер, коли ми вичерпали наші квартали, давайте перейдемо до наступного за величиною 50 00:02:07,370 --> 00:02:09,090 монета, копійки. 51 00:02:09,090 --> 00:02:12,400 Чи можемо ми використовувати ні копійки, щоб дати клієнт їх $ 0,07 назад? 52 00:02:12,400 --> 00:02:15,100 Ні, оскільки 10 більше, ніж сім. 53 00:02:15,100 --> 00:02:18,400 >> Так то наступний за величиною монета доступні для нас є нікель. 54 00:02:18,400 --> 00:02:19,590 Чи можемо ми використовувати нікель? 55 00:02:19,590 --> 00:02:20,250 Так. 56 00:02:20,250 --> 00:02:22,940 І тоді ми повинні були б $ 0,02 в запасі. 57 00:02:22,940 --> 00:02:24,910 >> Ми не можемо використовувати нікель повернутися $ 0.02. 58 00:02:24,910 --> 00:02:29,510 Таким чином, ми переїхали останню монету в в нашому розпорядженні - копійки. 59 00:02:29,510 --> 00:02:33,090 А після використання двох копійки, ми були б залишилося з нульовими центів, а це означає, що 60 00:02:33,090 --> 00:02:36,350 ми успішно повернуті користувач їх зміну заборгував 61 00:02:36,350 --> 00:02:37,830 використовуючи тільки чотири монети - 62 00:02:37,830 --> 00:02:40,410 одна чверть, одна нікель, і дві копійки. 63 00:02:40,410 --> 00:02:43,880 >> Ви можете запустити рішення персоналу, щоб переконатися, наше правило керівний та процес дав 64 00:02:43,880 --> 00:02:44,770 нам правильну відповідь. 65 00:02:44,770 --> 00:02:47,820 Для більшості проблемних наборів, ви зможете щоб запустити рішення персоналу, щоб побачити, як 66 00:02:47,820 --> 00:02:49,900 свій власний програма повинна працювати. 67 00:02:49,900 --> 00:02:53,390 І конкретні інструкції буде бути в задачі встановлює специфікації. 68 00:02:53,390 --> 00:02:57,180 >> Як тільки ми запустити рішення на персонал, при спонукає нас за скільки зміна прочитується 69 00:02:57,180 --> 00:02:59,790 зверніть увагу, що він просить складе в доларах. 70 00:02:59,790 --> 00:03:03,580 Ми вхід $ 0.32, 0.32. 71 00:03:03,580 --> 00:03:06,830 Це говорить нам, що чотири монети заборгували, узгоджується з нашою відповіддю. 72 00:03:06,830 --> 00:03:08,160 Фантастика. 73 00:03:08,160 --> 00:03:10,210 >> А тепер давайте почати шукати на реалізацію 74 00:03:10,210 --> 00:03:11,780 жодного алгоритму. 75 00:03:11,780 --> 00:03:13,410 Ми знаємо, пару речей. 76 00:03:13,410 --> 00:03:17,280 Один з них, що нам потрібно, щоб спонукати Користувач на суму зміни. 77 00:03:17,280 --> 00:03:20,830 >> Два, що ми будемо хотіти слідувати нашій керівним правило завжди використовувати 78 00:03:20,830 --> 00:03:22,990 максимально можливе монета. 79 00:03:22,990 --> 00:03:26,370 І три, що ми повинні стежити від того, скільки монет ми використовуємо. 80 00:03:26,370 --> 00:03:30,040 Тому що, нарешті, ми повинні надрукувати кількість монет, які ми. 81 00:03:30,040 --> 00:03:33,270 >> По-перше, пропонуючи користувачеві на суму змін. 82 00:03:33,270 --> 00:03:36,880 Всякий раз, коли ви маєте справу з користувальницької введення, щоб Переконайтеся, що ви думаєте про все 83 00:03:36,880 --> 00:03:40,010 Вимоги вході, і тільки приймати введення, який відповідає тим 84 00:03:40,010 --> 00:03:40,880 вимоги. 85 00:03:40,880 --> 00:03:44,100 У цьому випадку, ми хочемо мати справу з грошова вартість у доларах. 86 00:03:44,100 --> 00:03:48,230 >> Функції GetFloat і GetInt забезпечення що вхід є числовий. 87 00:03:48,230 --> 00:03:51,700 Але користувач може вводити негативні числові значення. 88 00:03:51,700 --> 00:03:56,260 Так що не забудьте використовувати тільки невід'ємне входів, яка включає в себе весь негатив 89 00:03:56,260 --> 00:03:58,370 числа і нуля. 90 00:03:58,370 --> 00:04:00,260 >> У цьому випадку вхідний повинен бути поплавок. 91 00:04:00,260 --> 00:04:01,960 Іншими словами, десяткове число. 92 00:04:01,960 --> 00:04:06,000 Тому що проблема набір специфікації вимагається Вам задати для введення в доларах. 93 00:04:06,000 --> 00:04:09,540 >> Але в C, значення з плаваючою точкою не може бути представлені точно. 94 00:04:09,540 --> 00:04:12,490 Тому що є кінцеве число бітів, з яким 95 00:04:12,490 --> 00:04:14,870 представляють нескінченні значення. 96 00:04:14,870 --> 00:04:16,860 Візьміть номер 0.1. 97 00:04:16,860 --> 00:04:21,140 Якби мені довелося попросити вас написати 0,1 по рука, щоб в сотий знака після коми, 98 00:04:21,140 --> 00:04:24,380 Ви б написати 1, а потім на 99 нулями. 99 00:04:24,380 --> 00:04:27,080 Ми очікуємо, що наш комп'ютер буде друкувати один і той же 100 00:04:27,080 --> 00:04:28,330 якщо ми запитали його. 101 00:04:28,330 --> 00:04:30,320 >> Отже, давайте подивимося, що він робить. 102 00:04:30,320 --> 00:04:33,150 Я розгляну висновок значень до в кінці цього йти через. 103 00:04:33,150 --> 00:04:39,270 В даний час, бачимо, що е% є Місце для плаваючою крапкою. 104 00:04:39,270 --> 00:04:44,530 Але ми вказуємо заздалегідь, що ми хочемо 100 десяткові відображається, а потім новий 105 00:04:44,530 --> 00:04:46,506 лінія для більш гарного форматування. 106 00:04:46,506 --> 00:04:51,710 >> Після рядка, ми вибираємо 0,1, як плавати, що ми хочемо, щоб роздрукувати. 107 00:04:51,710 --> 00:04:56,680 І результат, один, а потім деякими нулів, але потім 108 00:04:56,680 --> 00:04:57,980 ціла купа цифр. 109 00:04:57,980 --> 00:05:00,470 Звичайно, не як очікувалося. 110 00:05:00,470 --> 00:05:03,490 >> Плаваючою точкою неточність можна ввести помилок округлення у ваше 111 00:05:03,490 --> 00:05:07,330 розрахунки, що ви будете безумовно хочете уникнути. 112 00:05:07,330 --> 00:05:10,900 Якщо ви хочете побачити більше прикладів, можете завантажити imprecision.ce від 113 00:05:10,900 --> 00:05:14,880 пройти через код, який представляє собою простий програма, яка просить плавати і друкує його 114 00:05:14,880 --> 00:05:17,550 назад в сотий знака після коми. 115 00:05:17,550 --> 00:05:20,340 Звичайно, якщо ви хочете показати більш-менш знаків після коми 116 00:05:20,340 --> 00:05:22,410 Ви можете змінити себе. 117 00:05:22,410 --> 00:05:25,740 >> Як ви побачите, хоча різниця між ними невелика, коли ви отримуєте 118 00:05:25,740 --> 00:05:30,460 множенню і додавання поплавці, що Розбіжність в кінцевому підсумку може скласти. 119 00:05:30,460 --> 00:05:31,790 Назад до Жадібний. 120 00:05:31,790 --> 00:05:34,870 Ми хочемо уникнути помилок округлення , Маючи справу з цілими числами. 121 00:05:34,870 --> 00:05:38,090 Таким чином, після ми отримуємо дійсний введення з користувач, давайте перетворити це 122 00:05:38,090 --> 00:05:39,550 вартість долара до центів. 123 00:05:39,550 --> 00:05:43,420 >> Подумки ми робимо це шляхом множення доларова вартість на 100. 124 00:05:43,420 --> 00:05:46,400 Але пам'ятайте, через плаваючою точкою неточність, ми хочемо зробити 125 00:05:46,400 --> 00:05:48,580 упевнений, що ми використовуємо правильне значення. 126 00:05:48,580 --> 00:05:52,510 Множачи на 100 істотно рухатися після коми два простори в 127 00:05:52,510 --> 00:05:56,640 право, відрубування або усічення нічого після цього. 128 00:05:56,640 --> 00:05:59,430 >> Якщо ви пограти з деякими більш приклади, ви побачите, що у вас не буде 129 00:05:59,430 --> 00:06:02,980 завжди є правильний номер, якщо ви використовувати цей метод усікання. 130 00:06:02,980 --> 00:06:10,011 Наприклад, 12.59 надруковані до 100 знаків після коми, що дає вам 131 00:06:10,011 --> 00:06:14,050 12,5899, і так далі. 132 00:06:14,050 --> 00:06:18,460 Ви б отримати 12,58, якщо ви усічений, НЕ 12.59, як вам потрібно. 133 00:06:18,460 --> 00:06:21,130 >> Замість цього краще закруглити кількість в першу чергу. 134 00:06:21,130 --> 00:06:23,930 На щастя, C поставляється з Функція називається Круглий. 135 00:06:23,930 --> 00:06:25,040 Це в математичній бібліотеки. 136 00:06:25,040 --> 00:06:28,540 >> Якщо Ви хочете знати, як використовувати раунд, то ви можете вивести на керівництво чи 137 00:06:28,540 --> 00:06:30,550 Людина сторінки для цієї функції. 138 00:06:30,550 --> 00:06:35,510 Це можна зробити, набравши людини, скорочення Керівництво, а потім функція, що ви 139 00:06:35,510 --> 00:06:36,620 хочу подивитися. 140 00:06:36,620 --> 00:06:42,280 Так, набравши людина раунд в термінал командного рядка з'явиться керівництво. 141 00:06:42,280 --> 00:06:44,790 >> Це може бути трохи важко розшифрувати, але в кінці кінців ви будете 142 00:06:44,790 --> 00:06:45,660 отримати вид його. 143 00:06:45,660 --> 00:06:48,290 Довідкові сторінки показати вам, що функції робить, а потім деякі з 144 00:06:48,290 --> 00:06:50,170 можливі застосування нього. 145 00:06:50,170 --> 00:06:52,340 Я залишу вас, щоб дослідити сторінка керівництва за раунду. 146 00:06:52,340 --> 00:06:55,960 Але знайте, що ви можете використовувати його, щоб закруглити значення під час вашого переходу від 147 00:06:55,960 --> 00:06:57,180 доларів, щоб центів. 148 00:06:57,180 --> 00:06:59,690 >> Круглий дасть вам назад ряд типу даних Double. 149 00:06:59,690 --> 00:07:03,810 І ви можете конвертувати або литі це до міжнар згодом. 150 00:07:03,810 --> 00:07:04,980 Великий. 151 00:07:04,980 --> 00:07:08,120 В даний час ми спонукало користувача для грошова сума, і 152 00:07:08,120 --> 00:07:09,520 перетворили його на центів. 153 00:07:09,520 --> 00:07:12,410 Тепер ми можемо реалізувати алгоритм що завжди використовує 154 00:07:12,410 --> 00:07:14,640 Найбільші монети доступні. 155 00:07:14,640 --> 00:07:17,790 >> Майте на увазі, що є кілька способів реалізації Жадібний, як 156 00:07:17,790 --> 00:07:21,200 Є кілька способів вирішити кожна проблема науки комп'ютер. 157 00:07:21,200 --> 00:07:24,040 Пошук найбільш елегантний спосіб, що найцікавіше. 158 00:07:24,040 --> 00:07:27,030 Протягом усіх цих р-наборів, якщо ваша програма неточно відповідати моїм 159 00:07:27,030 --> 00:07:29,190 пояснення в покрокових посібників, це нормально. 160 00:07:29,190 --> 00:07:32,870 Але просто переконайтеся, що вона проходить перевірити 50, задовольняє всім 161 00:07:32,870 --> 00:07:36,270 вимоги утворюють специфікації, і що ви вважаєте ваш 162 00:07:36,270 --> 00:07:37,670 підхід має хороший дизайн. 163 00:07:37,670 --> 00:07:39,750 >> Іншими словами, наскільки ефективно це таке? 164 00:07:39,750 --> 00:07:44,400 Наприклад, чи знаєте ви вводите повторювані рядків коду, замість використання петлю? 165 00:07:44,400 --> 00:07:47,580 Написання коду з найкращим дизайном буде приходять досвід, як ви прогрес 166 00:07:47,580 --> 00:07:49,192 через курс. 167 00:07:49,192 --> 00:07:52,350 >> Для цього йти через, я піду за два способи, які можна використовувати, щоб 168 00:07:52,350 --> 00:07:53,540 завершити Жадібний. 169 00:07:53,540 --> 00:07:57,160 Перший спосіб являє собою спосіб з використанням петлі і віднімання. 170 00:07:57,160 --> 00:08:00,050 Раніше, коли ми говорили через Жадібний процес, ми постійно 171 00:08:00,050 --> 00:08:03,220 перевірили, чи можна використовувати в квартал, і використовували чверть до 172 00:08:03,220 --> 00:08:05,670 залишкова вартість була менше, ніж $ 0.25. 173 00:08:05,670 --> 00:08:07,990 >> Це призводить також до в той час як структура циклу. 174 00:08:07,990 --> 00:08:11,550 У той час як ми все ще можемо використовувати чверть, використовуйте один. 175 00:08:11,550 --> 00:08:15,900 Це в той час як цикл повинен виконати доти, як залишилася значення більше 176 00:08:15,900 --> 00:08:18,240 або дорівнює значенню центів кварталу. 177 00:08:18,240 --> 00:08:20,970 Це означає, що ви також хочете, щоб відслідковувати всю готівку, що залишилася 178 00:08:20,970 --> 00:08:24,570 значення, і оновлювати його кожен раз, коли ви використовуєте монету. 179 00:08:24,570 --> 00:08:28,350 >> Також пам'ятайте, що врешті-решт, ваш Вихід кількість монет, використовуваних. 180 00:08:28,350 --> 00:08:32,400 Так ще одна річ, щоб відстежувати це кількість монет, які ви використовуєте. 181 00:08:32,400 --> 00:08:35,450 Ви можете слідкувати за ним за допомогою добре названий змінні. 182 00:08:35,450 --> 00:08:39,730 І в тілі вашого циклу буде бути собою оновлення цих змінних. 183 00:08:39,730 --> 00:08:43,400 Після того як петля для чверті закінчується, вам може використовувати подібний один для п'ятаків, 184 00:08:43,400 --> 00:08:47,180 і так далі і так далі, поки ви не повернувся всю готівку. 185 00:08:47,180 --> 00:08:50,640 >> Я написав кілька псевдо-код тут, щоб допомогти вам уявити, наскільки 186 00:08:50,640 --> 00:08:55,080 Процес, який ми обговорювали, можливо перевести на С. Як ви бачите тут, я все ще з допомогою 187 00:08:55,080 --> 00:08:55,760 Англійські слова. 188 00:08:55,760 --> 00:08:56,830 Це не C ще. 189 00:08:56,830 --> 00:08:58,590 Але я почав відступу речей. 190 00:08:58,590 --> 00:09:00,690 Я поклав умови всередині мої дужки. 191 00:09:00,690 --> 00:09:03,710 Це починає виглядати трохи трохи схоже програмного коду. 192 00:09:03,710 --> 00:09:06,410 >> Псевдо-код є відмінним способом щоб самі почали. 193 00:09:06,410 --> 00:09:08,810 Візуалізація код перед ви подивіться вгору синтаксис. 194 00:09:08,810 --> 00:09:12,570 Бо часто найскладніше в Проблема насправді зрозуміти, що 195 00:09:12,570 --> 00:09:14,450 точно що вам потрібно зробити. 196 00:09:14,450 --> 00:09:17,490 Після того, як ви пишете, що вниз, то це набагато легше перегляду функції 197 00:09:17,490 --> 00:09:20,390 і синтаксис, характерні для даної лінія псевдо-код 198 00:09:20,390 --> 00:09:23,760 >> Майте на увазі, що це не може бути ідентична виду каркаса 199 00:09:23,760 --> 00:09:25,560 ваш код, що ви пишете. 200 00:09:25,560 --> 00:09:27,640 Є завжди оптимізації повинні бути зроблені. 201 00:09:27,640 --> 00:09:31,250 І особливо в моїй псевдо-код тут, подивитися, якщо ви можете визначити його. 202 00:09:31,250 --> 00:09:33,380 >> Але по суті процес і спосіб мислення 203 00:09:33,380 --> 00:09:35,250 так само, як ми обговорювали. 204 00:09:35,250 --> 00:09:38,350 Перший рядок говорить нам, щоб отримати певну кількість в доларах. 205 00:09:38,350 --> 00:09:40,960 І другий говорить нам перетворити його в центів. 206 00:09:40,960 --> 00:09:45,640 >> І потім, в той час чверті можуть бути використані, ми хочете збільшити кількість монет і 207 00:09:45,640 --> 00:09:47,200 зменшити кількість готівки. 208 00:09:47,200 --> 00:09:49,880 Те ж саме стосується Dimes, нікель, і пенні. 209 00:09:49,880 --> 00:09:53,230 І, нарешті, ми говоримо користувачу скільки монет ми використали. 210 00:09:53,230 --> 00:09:53,750 >> Великий. 211 00:09:53,750 --> 00:09:55,680 Так що висновок, метод зворотного зв'язку. 212 00:09:55,680 --> 00:09:59,720 Тепер давайте поговоримо про модульного методу, який більше схожий дивізії. 213 00:09:59,720 --> 00:10:03,630 >> Ми всі знайомі з плюсом, мінус, множити і ділити операторів 214 00:10:03,630 --> 00:10:05,030 в нашому розпорядженні. 215 00:10:05,030 --> 00:10:09,060 С має всі чотири з них, але також має оператор по модулю, в особі 216 00:10:09,060 --> 00:10:10,640 знак відсотка. 217 00:10:10,640 --> 00:10:11,940 Модулю дійсно охайно. 218 00:10:11,940 --> 00:10:14,880 Це дає вам залишок від ділення двох чисел. 219 00:10:14,880 --> 00:10:19,910 >> Пам'ятайте довге повідомлення ділення, коли ви розділите, скажімо, 74 на три? 220 00:10:19,910 --> 00:10:23,510 Починаючи з місця десятки, ви б знаю, що 3 переходить в семи 221 00:10:23,510 --> 00:10:27,620 два рази, щоб зробити шість з Решта один. 222 00:10:27,620 --> 00:10:31,870 Ви б написати два у верхній частині, а потім відняти 6 з семи, перенесення 223 00:10:31,870 --> 00:10:34,980 залишок від 14 до повторити процес. 224 00:10:34,980 --> 00:10:39,410 >> Три переходить в 14 в чотири рази, щоб зробити 12, із залишком два. 225 00:10:39,410 --> 00:10:40,930 І два не переноситься більше. 226 00:10:40,930 --> 00:10:44,170 Так два залишиться на нижня як залишок. 227 00:10:44,170 --> 00:10:46,800 >> І ось що дає модулю, ви що число внизу. 228 00:10:46,800 --> 00:10:49,790 Так 74 по модулю три дасть вам два. 229 00:10:49,790 --> 00:10:52,980 І 10 по модулю два, ну, що дасть вам зосередитися. 230 00:10:52,980 --> 00:10:56,500 Тому що немає ніякого залишок коли ви розділите 10 на два. 231 00:10:56,500 --> 00:11:00,190 >> Шість модулю п'ять, а п'ять переходить в шести разів. 232 00:11:00,190 --> 00:11:01,830 А потім він один в запасі. 233 00:11:01,830 --> 00:11:04,720 Так шість модулю п'ять є одним. 234 00:11:04,720 --> 00:11:07,950 >> Тоді, якщо у вас є сім модулю дев'ять, ви отримаєте сім. 235 00:11:07,950 --> 00:11:09,840 Тому що дев'ять більше, ніж сім. 236 00:11:09,840 --> 00:11:15,020 Так що не ділить все це в сім, залишивши сім, як ваша відповідь. 237 00:11:15,020 --> 00:11:18,340 >> Якщо ви думаєте про модулю трохи більше, пам'ятайте, що це дає вам 238 00:11:18,340 --> 00:11:21,020 Решта після розділити щось. 239 00:11:21,020 --> 00:11:23,620 Подумайте, як ви могли б бути можливість використовувати його в Жадібний. 240 00:11:23,620 --> 00:11:27,620 Скажімо про це попросить користувач $ 400,11. 241 00:11:27,620 --> 00:11:30,470 Що таке спосіб з'ясувати, скільки чверті ви повинні без необхідності 242 00:11:30,470 --> 00:11:32,360 розраховувати кожен? 243 00:11:32,360 --> 00:11:37,480 >> Після того як ви з'ясувати, скільки чверті ви можете використовувати, щоб зробити $ 400,11, скільки 244 00:11:37,480 --> 00:11:38,880 змінити останки? 245 00:11:38,880 --> 00:11:42,110 Можливо поєднання тут між модулю і ділення прийде в 246 00:11:42,110 --> 00:11:46,200 зручно, щоб дати вам прохолодно, елегантний підійти до Жадібні проблеми. 247 00:11:46,200 --> 00:11:49,030 Але пам'ятайте, що керівний правило все ще застосовується. 248 00:11:49,030 --> 00:11:51,610 Завжди використовуйте якомога більшу монету. 249 00:11:51,610 --> 00:11:55,340 >> Як тільки Ви зробили розрахунок, як багато монет у використанні, останній крок 250 00:11:55,340 --> 00:11:57,930 повинен роздрукувати кількість монети, які ви розраховані. 251 00:11:57,930 --> 00:12:01,610 До цих пір ми використовували на Printf функціонувати виключно для рядків. 252 00:12:01,610 --> 00:12:05,200 Але якщо ви хочете, щоб роздрукувати лист в систему, або просто будь-який тип даних, яка зберігається 253 00:12:05,200 --> 00:12:09,200 у змінній, ви повинні вказати що використання заповнювача. 254 00:12:09,200 --> 00:12:12,400 >> Тут я включив всього кілька порад про те, як роздрукувати значення. 255 00:12:12,400 --> 00:12:16,390 Якщо у вас є ціле, ви б написати рядок, використовуючи% D, як 256 00:12:16,390 --> 00:12:17,450 заповнювач. 257 00:12:17,450 --> 00:12:20,170 Після закриття котирування знак, кому. 258 00:12:20,170 --> 00:12:24,530 А потім поклав у ціле число, яке буде зайняти місце% D, коли на друк. 259 00:12:24,530 --> 00:12:27,150 >> Таким чином, після відображення номера з використовуватися монети, ви 260 00:12:27,150 --> 00:12:28,500 закінчив із Жадібний. 261 00:12:28,500 --> 00:12:32,000 Переконайтеся, щоб перевірити всі кутові випадки, привести в порядок ваш стиль трохи, і ти 262 00:12:32,000 --> 00:12:33,350 все готово уявити. 263 00:12:33,350 --> 00:12:36,000 Наприкінці цієї проблеми набору, ви будете бути більш знайомі з CS50 264 00:12:36,000 --> 00:12:39,940 Прилад, термінал, і петля структури та змінні в С 265 00:12:39,940 --> 00:12:41,470 >> Ти на правильному шляху. 266 00:12:41,470 --> 00:12:43,040 Крива навчання може здатися жорстким. 267 00:12:43,040 --> 00:12:44,690 Так що беріть його крок за кроком. 268 00:12:44,690 --> 00:12:47,110 Переконайтеся, що ви виписати псевдо-код перед зануренням занадто глибоко 269 00:12:47,110 --> 00:12:49,000 в незнайомій синтаксису. 270 00:12:49,000 --> 00:12:52,030 >> Зробити, щоб зробити список, і розпадаються Призначення на більш дрібні, більш 271 00:12:52,030 --> 00:12:53,440 керовані завдання. 272 00:12:53,440 --> 00:12:55,810 Досліджуйте всі CS50 ресурсів. 273 00:12:55,810 --> 00:12:58,270 На додаток до лекції, rewatch це йти через. 274 00:12:58,270 --> 00:12:59,790 >> Зверніть особливу увагу на розділ. 275 00:12:59,790 --> 00:13:00,710 Перевірте шорти. 276 00:13:00,710 --> 00:13:04,640 Читайте питання ваших однокласників на Обговорити і розміщувати свої власні. 277 00:13:04,640 --> 00:13:06,110 >> Бажаємо удачі в р-набору. 278 00:13:06,110 --> 00:13:07,200 І спасибі за перегляд. 279 00:13:07,200 --> 00:13:08,690 Це було Жадібний. 280 00:13:08,690 --> 00:13:15,691 >> [Музика грає]