1 00:00:00,000 --> 00:00:10,216 >> [MUSIC CHƠI] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA CHAN: Bây giờ chúng ta hãy giải quyết tham lam. 3 00:00:12,060 --> 00:00:14,390 Giả sử bạn là một nhân viên thu ngân, và bạn cần phải cung cấp cho khách hàng của bạn một 4 00:00:14,390 --> 00:00:16,309 số tiền nhất định của sự thay đổi. 5 00:00:16,309 --> 00:00:18,820 Vâng, nếu bạn là một nhân viên thu ngân tham lam, bạn muốn giữ tất cả 6 00:00:18,820 --> 00:00:20,040 các đồng tiền cho chính mình. 7 00:00:20,040 --> 00:00:24,310 Vì vậy, bạn muốn cung cấp cho khách hàng của họ thay đổi sử dụng như là vài đồng xu càng tốt. 8 00:00:24,310 --> 00:00:27,640 >> Nhiệm vụ của bạn cho điều này p-bộ là thực hiện Tham lam, một chương trình 9 00:00:27,640 --> 00:00:30,530 tính toán số lượng tối thiểu đồng tiền được sử dụng để thực hiện bất kỳ 10 00:00:30,530 --> 00:00:31,940 cho số lượng thay đổi. 11 00:00:31,940 --> 00:00:35,660 Trước khi lặn vào các chương trình khái niệm và cú pháp C cho tham lam, 12 00:00:35,660 --> 00:00:38,410 chúng ta hãy nói chuyện đầu tiên qua tham lam chương trình, và xem chúng ta 13 00:00:38,410 --> 00:00:40,570 có thể xác định một thuật toán. 14 00:00:40,570 --> 00:00:42,560 Hãy nhớ rằng một thuật toán chỉ là một tập hợp các 15 00:00:42,560 --> 00:00:44,680 hướng dẫn giải quyết vấn đề. 16 00:00:44,680 --> 00:00:48,060 Một thuật toán để tham lam sẽ chỉ được một thiết lập các quy tắc hợp lý và bước 17 00:00:48,060 --> 00:00:49,000 chúng ta có thể làm theo. 18 00:00:49,000 --> 00:00:52,510 Và họ sẽ luôn luôn mang lại tối thiểu số tiền cần thiết. 19 00:00:52,510 --> 00:00:54,340 >> Điều đầu tiên bạn cần phải biết là bao nhiêu thay đổi 20 00:00:54,340 --> 00:00:55,710 nợ cho khách hàng. 21 00:00:55,710 --> 00:00:58,560 Trong ví dụ này, chúng ta hãy nói $ 0,32. 22 00:00:58,560 --> 00:01:00,880 Có rất nhiều cách để lấy lại $ 0,32. 23 00:01:00,880 --> 00:01:03,950 Bạn có thể sử dụng, ví dụ, 32 đồng xu. 24 00:01:03,950 --> 00:01:07,560 Hoặc nếu bạn là một chút tham lam trong lựa chọn đồng tiền của bạn, bạn có thể sử dụng 25 00:01:07,560 --> 00:01:11,730 năm tiền xu thay vì 32 bằng cách cho khách hàng ba dimes - 26 00:01:11,730 --> 00:01:14,690 $ 0.10 mỗi - và hai đồng xu - $ 0,01 mỗi. 27 00:01:14,690 --> 00:01:16,830 >> Nhưng chúng ta có thể làm tốt hơn so với năm tiền xu? 28 00:01:16,830 --> 00:01:18,990 Chúng ta có thể thậm chí tham lam? 29 00:01:18,990 --> 00:01:20,410 Hoàn toàn có thể. 30 00:01:20,410 --> 00:01:23,360 >> Chúng ta hãy tiếp tục đi bộ qua chương trình tham lam, và nhìn thấy. 31 00:01:23,360 --> 00:01:27,090 Nếu mục tiêu cuối cùng của bạn là sử dụng một vài đồng xu càng tốt, sau đó nó sẽ nhất 32 00:01:27,090 --> 00:01:29,680 thận trọng để sử dụng lớn nhất đồng tiền có thể. 33 00:01:29,680 --> 00:01:32,410 Bạn không muốn cung cấp cho một phần tư sao - 0,25 $ mỗi - 34 00:01:32,410 --> 00:01:33,640 hơn năm nickels - 35 00:01:33,640 --> 00:01:34,940 $ 0,05 mỗi. 36 00:01:34,940 --> 00:01:38,260 Vì vậy, có lẽ quy tắc quản trị của chúng tôi cho Tham lam có thể luôn luôn sử dụng 37 00:01:38,260 --> 00:01:40,590 đồng tiền lớn nhất có thể. 38 00:01:40,590 --> 00:01:43,640 Ra các khu, dimes, nickels, và đồng xu, chúng tôi 39 00:01:43,640 --> 00:01:44,830 đồng xu lớn nhất là quý. 40 00:01:44,830 --> 00:01:47,690 Vì vậy chúng tôi sẽ cố gắng sử dụng chúng đầu tiên. 41 00:01:47,690 --> 00:01:49,270 >> Sao để chúng tôi $ 0,32. 42 00:01:49,270 --> 00:01:52,455 Chúng ta có thể sử dụng một phần để cung cấp cho khách hàng 0,32 $? 43 00:01:52,455 --> 00:01:52,930 Vâng. 44 00:01:52,930 --> 00:01:55,530 Mà sẽ để lại cho chúng tôi với 0,07 $ trái. 45 00:01:55,530 --> 00:01:57,440 >> Chúng ta có thể sử dụng quý khác? 46 00:01:57,440 --> 00:02:00,100 Không, bởi vì 25 lớn hơn bảy. 47 00:02:00,100 --> 00:02:03,470 Chúng tôi không muốn cung cấp cho khách hàng bất kỳ nhiều hơn chúng ta nợ họ. 48 00:02:03,470 --> 00:02:04,190 >> Được rồi. 49 00:02:04,190 --> 00:02:07,370 Bây giờ chúng ta đã kiệt sức quý của chúng tôi, chúng ta hãy chuyển sang lớn nhất tiếp theo 50 00:02:07,370 --> 00:02:09,090 đồng xu, đồng xu. 51 00:02:09,090 --> 00:02:12,400 Chúng ta có thể sử dụng một xu để cung cấp cho các khách hàng của họ 0,07 $ trở lại? 52 00:02:12,400 --> 00:02:15,100 Không, kể từ 10 lớn hơn bảy. 53 00:02:15,100 --> 00:02:18,400 >> Vì vậy, sau đó là xu lớn nhất tiếp theo truy cập cho chúng tôi là niken. 54 00:02:18,400 --> 00:02:19,590 Chúng ta có thể sử dụng một niken? 55 00:02:19,590 --> 00:02:20,250 Vâng. 56 00:02:20,250 --> 00:02:22,940 Và sau đó chúng ta sẽ có 0,02 $ còn sót lại. 57 00:02:22,940 --> 00:02:24,910 >> Chúng ta không thể sử dụng một niken để trả lại $ 0,02. 58 00:02:24,910 --> 00:02:29,510 Vì vậy, chúng tôi di chuyển đồng xu cuối cùng tại xử lý của chúng tôi - các penny. 59 00:02:29,510 --> 00:02:33,090 Và sau khi sử dụng hai đồng xu, chúng tôi muốn được trái với không xu, có nghĩa là 60 00:02:33,090 --> 00:02:36,350 chúng tôi đã thanh toán thành công trở lại người sử dụng thay đổi của họ còn nợ 61 00:02:36,350 --> 00:02:37,830 sử dụng chỉ có bốn đồng tiền - 62 00:02:37,830 --> 00:02:40,410 một phần tư, một niken, và hai đồng xu. 63 00:02:40,410 --> 00:02:43,880 >> Bạn có thể chạy các giải pháp nhân viên để xem nguyên tắc quản trị của chúng tôi và quá trình đưa 64 00:02:43,880 --> 00:02:44,770 chúng ta câu trả lời đúng. 65 00:02:44,770 --> 00:02:47,820 Đối với hầu hết các bộ vấn đề, bạn sẽ có thể để chạy các giải pháp nhân viên để xem như thế nào 66 00:02:47,820 --> 00:02:49,900 chương trình của bạn nên làm việc. 67 00:02:49,900 --> 00:02:53,390 Và hướng dẫn cụ thể sẽ được trong vấn đề thiết lập thông số kỹ thuật. 68 00:02:53,390 --> 00:02:57,180 >> Một khi chúng ta chạy các giải pháp, nhân viên nhắc nhở chúng ta cho bao nhiêu thay đổi được nợ 69 00:02:57,180 --> 00:02:59,790 lưu ý rằng nó yêu cầu số tiền bằng đô la. 70 00:02:59,790 --> 00:03:03,580 Chúng tôi đầu vào $ 0,32, 0,32. 71 00:03:03,580 --> 00:03:06,830 Nó cho chúng ta biết rằng bốn đồng tiền đang nợ, phù hợp với câu trả lời của chúng tôi. 72 00:03:06,830 --> 00:03:08,160 Tuyệt vời. 73 00:03:08,160 --> 00:03:10,210 >> Vì vậy, bây giờ chúng ta hãy bắt đầu tìm kiếm vào thực hiện 74 00:03:10,210 --> 00:03:11,780 của thuật toán tham lam. 75 00:03:11,780 --> 00:03:13,410 Chúng tôi biết một vài điều. 76 00:03:13,410 --> 00:03:17,280 Một, chúng ta sẽ cần phải nhắc nhở người người sử dụng cho một số lượng thay đổi. 77 00:03:17,280 --> 00:03:20,830 >> Hai, chúng ta sẽ phải thực hiện của chúng tôi quản lý quy tắc để luôn luôn sử dụng 78 00:03:20,830 --> 00:03:22,990 đồng tiền lớn nhất có thể. 79 00:03:22,990 --> 00:03:26,370 Và ba, chúng ta cần phải theo dõi bao nhiêu tiền chúng tôi sử dụng. 80 00:03:26,370 --> 00:03:30,040 Bởi vì cuối cùng, chúng ta cần phải in số tiền mà chúng tôi. 81 00:03:30,040 --> 00:03:33,270 >> Đầu tiên, khiến người sử dụng cho một số lượng thay đổi. 82 00:03:33,270 --> 00:03:36,880 Bất cứ khi nào bạn đối phó với người sử dụng, làm cho chắc chắn rằng bạn nghĩ về tất cả các 83 00:03:36,880 --> 00:03:40,010 yêu cầu của đầu vào, và chỉ chấp nhận đầu vào đáp ứng những 84 00:03:40,010 --> 00:03:40,880 yêu cầu. 85 00:03:40,880 --> 00:03:44,100 Trong trường hợp này, chúng tôi muốn để đối phó với giá trị tiền tệ bằng đô la. 86 00:03:44,100 --> 00:03:48,230 >> Các chức năng GetFloat và getInt đảm bảo mà đầu vào là số. 87 00:03:48,230 --> 00:03:51,700 Nhưng người dùng có thể nhập giá trị số âm. 88 00:03:51,700 --> 00:03:56,260 Vì vậy, hãy nhớ chỉ sử dụng không âm đầu vào, trong đó bao gồm tất cả các tiêu cực 89 00:03:56,260 --> 00:03:58,370 số và số không. 90 00:03:58,370 --> 00:04:00,260 >> Trong trường hợp này, các đầu vào nên được một phao. 91 00:04:00,260 --> 00:04:01,960 Nói cách khác, một số thập phân. 92 00:04:01,960 --> 00:04:06,000 Vì spec vấn đề thiết lập yêu cầu bạn yêu cầu đầu vào bằng đô la. 93 00:04:06,000 --> 00:04:09,540 >> Nhưng trong C, giá trị dấu chấm động có thể không được đại diện một cách chính xác. 94 00:04:09,540 --> 00:04:12,490 Bởi vì có một số hữu hạn bit mà để 95 00:04:12,490 --> 00:04:14,870 đại diện cho các giá trị vô hạn. 96 00:04:14,870 --> 00:04:16,860 Có số lượng 0.1. 97 00:04:16,860 --> 00:04:21,140 Nếu tôi được yêu cầu bạn viết bằng 0.1 tay đến chữ số thập phân trăm, 98 00:04:21,140 --> 00:04:24,380 bạn sẽ viết một 1, tiếp theo 99 zero. 99 00:04:24,380 --> 00:04:27,080 Chúng tôi hy vọng rằng máy tính của chúng tôi sẽ in một điều chính xác 100 00:04:27,080 --> 00:04:28,330 nếu chúng ta hỏi nó. 101 00:04:28,330 --> 00:04:30,320 >> Vì vậy, chúng ta hãy xem những gì nó làm. 102 00:04:30,320 --> 00:04:33,150 Tôi sẽ xem xét các giá trị in ấn theo hướng cuối này đi qua. 103 00:04:33,150 --> 00:04:39,270 Bây giờ, thấy ở đây f% là giữ chỗ cho một điểm nổi. 104 00:04:39,270 --> 00:04:44,530 Nhưng chúng tôi xác định trước mà chúng tôi muốn 100 chữ số thập phân hiển thị, và sau đó mới 105 00:04:44,530 --> 00:04:46,506 dòng để định dạng đẹp hơn. 106 00:04:46,506 --> 00:04:51,710 >> Sau chuỗi, chúng tôi chọn 0.1 là nổi mà chúng ta muốn in ra. 107 00:04:51,710 --> 00:04:56,680 Và kết quả, một, tiếp theo một số số không, nhưng sau đó một 108 00:04:56,680 --> 00:04:57,980 bó toàn bộ các con số. 109 00:04:57,980 --> 00:05:00,470 Chắc chắn không như mong đợi. 110 00:05:00,470 --> 00:05:03,490 >> Dấu chấm động không chính xác có thể giới thiệu làm tròn lỗi vào của bạn 111 00:05:03,490 --> 00:05:07,330 tính toán rằng bạn sẽ chắc chắn muốn tránh. 112 00:05:07,330 --> 00:05:10,900 Nếu bạn muốn xem thêm các ví dụ, bạn có có thể tải về từ imprecision.ce 113 00:05:10,900 --> 00:05:14,880 đi bộ qua mã, mà là một đơn giản chương trình yêu cầu nổi và in nó 114 00:05:14,880 --> 00:05:17,550 trở về vị trí số thập phân trăm. 115 00:05:17,550 --> 00:05:20,340 Tất nhiên, nếu bạn muốn hiển thị ít nhiều chữ số thập phân 116 00:05:20,340 --> 00:05:22,410 bạn có thể thay đổi chính mình. 117 00:05:22,410 --> 00:05:25,740 >> Như bạn sẽ thấy, mặc dù sự khác biệt giữa hai là nhỏ, khi bạn nhận được 118 00:05:25,740 --> 00:05:30,460 để nhân và thêm nổi, mà sự khác biệt cuối cùng có thể tăng lên. 119 00:05:30,460 --> 00:05:31,790 Sao để tham lam. 120 00:05:31,790 --> 00:05:34,870 Chúng tôi sẽ muốn tránh các lỗi làm tròn bằng cách giao dịch với các số nguyên. 121 00:05:34,870 --> 00:05:38,090 Vì vậy, sau khi chúng tôi có được đầu vào có giá trị từ người sử dụng, chúng ta hãy chuyển đổi này 122 00:05:38,090 --> 00:05:39,550 giá trị đồng đô la xu. 123 00:05:39,550 --> 00:05:43,420 >> Tinh thần, chúng tôi làm điều này bằng cách nhân giá trị đồng đô la 100. 124 00:05:43,420 --> 00:05:46,400 Nhưng hãy nhớ, vì điểm nổi không chính xác, chúng tôi muốn chắc 125 00:05:46,400 --> 00:05:48,580 chắc chắn rằng chúng ta đang sử dụng giá trị quyền. 126 00:05:48,580 --> 00:05:52,510 Nhân với 100 về cơ bản sẽ di chuyển số thập phân hai không gian để 127 00:05:52,510 --> 00:05:56,640 bên phải, cắt bỏ hoặc cắt xén bất cứ điều gì sau đó. 128 00:05:56,640 --> 00:05:59,430 >> Nếu bạn chơi xung quanh với một số chi tiết ví dụ, bạn sẽ thấy rằng bạn sẽ không 129 00:05:59,430 --> 00:06:02,980 luôn luôn có số bên phải nếu bạn sử dụng phương pháp này cắt xén. 130 00:06:02,980 --> 00:06:10,011 Ví dụ, 12,59 in đến 100 chữ số thập phân, cung cấp cho bạn 131 00:06:10,011 --> 00:06:14,050 12,5899, vân vân. 132 00:06:14,050 --> 00:06:18,460 Bạn sẽ nhận được 12,58 nếu bạn cắt ngắn, không 12.59, như bạn cần. 133 00:06:18,460 --> 00:06:21,130 >> Thay vào đó, cách tốt nhất để làm tròn số đầu tiên. 134 00:06:21,130 --> 00:06:23,930 May mắn thay, C đi kèm với các chức năng gọi là Vòng. 135 00:06:23,930 --> 00:06:25,040 Đó là trong thư viện toán học. 136 00:06:25,040 --> 00:06:28,540 >> Nếu bạn muốn biết làm thế nào để sử dụng Round, sau đó bạn có thể mang đến hướng dẫn hoặc 137 00:06:28,540 --> 00:06:30,550 trang người đàn ông cho chức năng đó. 138 00:06:30,550 --> 00:06:35,510 Bạn làm điều này bằng cách gõ người đàn ông, viết tắt dẫn sử dụng, và sau đó là chức năng mà bạn 139 00:06:35,510 --> 00:06:36,620 muốn tìm. 140 00:06:36,620 --> 00:06:42,280 Vì vậy việc đánh vòng người đàn ông vào nhà ga dòng lệnh sẽ mang đến hướng dẫn. 141 00:06:42,280 --> 00:06:44,790 >> Nó có thể là một chút khó khăn để giải mã, nhưng cuối cùng bạn sẽ thấy 142 00:06:44,790 --> 00:06:45,660 nhận được hang của nó. 143 00:06:45,660 --> 00:06:48,290 Trang người đàn ông cho bạn những gì các chức năng không có gì, và sau đó một số 144 00:06:48,290 --> 00:06:50,170 sử dụng có thể có của nó. 145 00:06:50,170 --> 00:06:52,340 Tôi sẽ để lại cho bạn để khám phá trang người đàn ông cho tròn. 146 00:06:52,340 --> 00:06:55,960 Nhưng biết rằng bạn có thể sử dụng nó để làm tròn giá trị trong quá trình chuyển đổi của bạn từ 147 00:06:55,960 --> 00:06:57,180 đô la để xu. 148 00:06:57,180 --> 00:06:59,690 >> Vòng sẽ cung cấp cho bạn lại một số của kiểu dữ liệu gấp đôi. 149 00:06:59,690 --> 00:07:03,810 Và bạn có thể chuyển đổi hoặc diễn viên nó đến một int sau đó. 150 00:07:03,810 --> 00:07:04,980 Tuyệt vời. 151 00:07:04,980 --> 00:07:08,120 Bây giờ chúng tôi đã nhắc nhở người sử dụng cho một số lượng tiền tệ, và 152 00:07:08,120 --> 00:07:09,520 chuyển đổi nó thành xu. 153 00:07:09,520 --> 00:07:12,410 Bây giờ chúng ta có thể thực hiện một thuật toán mà luôn luôn sử dụng 154 00:07:12,410 --> 00:07:14,640 đồng tiền lớn nhất có sẵn. 155 00:07:14,640 --> 00:07:17,790 >> Hãy nhớ rằng có nhiều cách để thực hiện tham lam, giống như 156 00:07:17,790 --> 00:07:21,200 có nhiều cách để tiếp cận mọi vấn đề khoa học máy tính. 157 00:07:21,200 --> 00:07:24,040 Tìm cách thanh lịch nhất, đó là một phần thú vị. 158 00:07:24,040 --> 00:07:27,030 Trong suốt những p-bộ, nếu chương trình của bạn không phù hợp chính xác của tôi 159 00:07:27,030 --> 00:07:29,190 giải thích trong walkthroughs, đó là OK. 160 00:07:29,190 --> 00:07:32,870 Nhưng chỉ cần đảm bảo rằng nó đi kiểm tra 50, đáp ứng tất cả các 161 00:07:32,870 --> 00:07:36,270 yêu cầu hình thành các chi tiết kỹ thuật, và bạn xem xét liệu của bạn 162 00:07:36,270 --> 00:07:37,670 phương pháp tiếp cận có thiết kế tốt. 163 00:07:37,670 --> 00:07:39,750 >> Nói cách khác, làm thế nào hiệu quả không? 164 00:07:39,750 --> 00:07:44,400 Ví dụ, bạn có gõ lặp đi lặp lại dòng mã, thay vì sử dụng một vòng lặp? 165 00:07:44,400 --> 00:07:47,580 Viết mã với thiết kế tốt hơn sẽ đến kinh nghiệm khi bạn tiến bộ 166 00:07:47,580 --> 00:07:49,192 thông qua khóa học. 167 00:07:49,192 --> 00:07:52,350 >> Đối với điều này đi qua, tôi sẽ đi qua hai phương pháp có thể được sử dụng để 168 00:07:52,350 --> 00:07:53,540 hoàn thành tham lam. 169 00:07:53,540 --> 00:07:57,160 Phương pháp đầu tiên là một phương pháp sử dụng vòng và trừ. 170 00:07:57,160 --> 00:08:00,050 Trước đó, khi chúng tôi nói chuyện qua Quá trình tham lam, chúng tôi liên tục 171 00:08:00,050 --> 00:08:03,220 kiểm tra xem chúng tôi có thể sử dụng một phần tư, và sử dụng một phần tư cho đến khi 172 00:08:03,220 --> 00:08:05,670 giá trị còn lại được ít hơn $ 0,25. 173 00:08:05,670 --> 00:08:07,990 >> Dịch này cũng để một trong khi cấu trúc vòng lặp. 174 00:08:07,990 --> 00:08:11,550 Trong khi chúng ta vẫn có thể sử dụng một phần tư, sử dụng nó. 175 00:08:11,550 --> 00:08:15,900 Rằng vòng lặp trong khi phải thực hiện như lâu như giá trị còn lại lớn hơn 176 00:08:15,900 --> 00:08:18,240 hoặc bằng giá trị của một phần tư xu. 177 00:08:18,240 --> 00:08:20,970 Điều đó có nghĩa rằng bạn cũng sẽ muốn theo dõi số tiền còn lại 178 00:08:20,970 --> 00:08:24,570 giá trị, và cập nhật tất cả thời gian mà bạn sử dụng một đồng xu. 179 00:08:24,570 --> 00:08:28,350 >> Cũng nên nhớ rằng lúc kết thúc, của bạn đầu ra là số lượng tiền xu được sử dụng. 180 00:08:28,350 --> 00:08:32,400 Vì vậy, một điều để theo dõi là số tiền mà bạn sử dụng. 181 00:08:32,400 --> 00:08:35,450 Bạn có thể theo dõi các sử dụng cũng tên biến. 182 00:08:35,450 --> 00:08:39,730 Và trong cơ thể của vòng lặp của bạn sẽ là một cập nhật cho các biến. 183 00:08:39,730 --> 00:08:43,400 Sau khi vòng lặp cho quý kết thúc, bạn có thể sử dụng một cái tương tự vì mưu sinh, 184 00:08:43,400 --> 00:08:47,180 vv và vv, cho đến khi bạn đã trả lại tất cả số tiền trên. 185 00:08:47,180 --> 00:08:50,640 >> Tôi đã viết một số mã giả ở đây để giúp bạn hình dung chỉ cách các 186 00:08:50,640 --> 00:08:55,080 quá trình chúng tôi đã thảo luận có thể dịch để C. Như bạn thấy ở đây, tôi vẫn còn sử dụng 187 00:08:55,080 --> 00:08:55,760 Từ tiếng Anh. 188 00:08:55,760 --> 00:08:56,830 Nó không phải là C được nêu ra. 189 00:08:56,830 --> 00:08:58,590 Nhưng tôi đã bắt đầu điều indent. 190 00:08:58,590 --> 00:09:00,690 Tôi đã đặt điều kiện bên trong dấu ngoặc đơn của tôi. 191 00:09:00,690 --> 00:09:03,710 Nó bắt đầu để tìm một chút giống như mã lập trình. 192 00:09:03,710 --> 00:09:06,410 >> Mã giả là một cách tuyệt vời để có được cho mình bắt đầu. 193 00:09:06,410 --> 00:09:08,810 Hình dung mã của bạn trước khi bạn nhìn lên cú pháp. 194 00:09:08,810 --> 00:09:12,570 Bởi vì thường là phần khó khăn nhất về một vấn đề thực sự hiểu biết những gì 195 00:09:12,570 --> 00:09:14,450 chính xác bạn cần làm. 196 00:09:14,450 --> 00:09:17,490 Một khi bạn viết đó xuống, thì đó là một dễ dàng hơn nhiều để tìm kiếm các chức năng 197 00:09:17,490 --> 00:09:20,390 và cú pháp cụ thể để bạn dòng mã giả 198 00:09:20,390 --> 00:09:23,760 >> Hãy ghi nhớ rằng điều này có thể không được giống với các loại xương của 199 00:09:23,760 --> 00:09:25,560 mã của bạn mà bạn viết. 200 00:09:25,560 --> 00:09:27,640 Luôn có những tối ưu hóa được thực hiện. 201 00:09:27,640 --> 00:09:31,250 Và đặc biệt là trong mã giả của tôi ở đây, xem bạn có thể phát hiện nó. 202 00:09:31,250 --> 00:09:33,380 >> Nhưng về cơ bản quá trình và cách suy nghĩ 203 00:09:33,380 --> 00:09:35,250 chỉ khi chúng ta thảo luận. 204 00:09:35,250 --> 00:09:38,350 Dòng đầu tiên cho chúng tôi để có được một số tiền nhất định bằng đô la. 205 00:09:38,350 --> 00:09:40,960 Và thứ hai cho chúng ta để chuyển đổi nó sang xu. 206 00:09:40,960 --> 00:09:45,640 >> Và sau đó, trong khi quý có thể được sử dụng, chúng tôi muốn tăng số tiền và 207 00:09:45,640 --> 00:09:47,200 giảm lượng tiền mặt. 208 00:09:47,200 --> 00:09:49,880 Cùng đi vì mưu sinh, đồng xu mạ kẽm, và đồng xu. 209 00:09:49,880 --> 00:09:53,230 Và cuối cùng, chúng tôi cho người sử dụng bao nhiêu tiền chúng tôi sử dụng. 210 00:09:53,230 --> 00:09:53,750 >> Tuyệt vời. 211 00:09:53,750 --> 00:09:55,680 Để kết luận phương pháp vòng lặp. 212 00:09:55,680 --> 00:09:59,720 Bây giờ hãy nói về phương pháp mô-đun, mà là nhiều hơn như phân chia. 213 00:09:59,720 --> 00:10:03,630 >> Chúng ta đều quen thuộc với cộng, trừ, nhân, chia các nhà khai thác 214 00:10:03,630 --> 00:10:05,030 sẵn cho chúng tôi. 215 00:10:05,030 --> 00:10:09,060 C có tất cả bốn người trong số những người, nhưng cũng có các nhà điều hành modulo, đại diện bởi một 216 00:10:09,060 --> 00:10:10,640 dấu phần trăm. 217 00:10:10,640 --> 00:10:11,940 Modulo là thực sự gọn gàng. 218 00:10:11,940 --> 00:10:14,880 Nó cung cấp cho bạn phần còn lại từ chia hai con số. 219 00:10:14,880 --> 00:10:19,910 >> Nhớ những tin nhắn chia dài khi bạn chia, nói rằng, 74 ba? 220 00:10:19,910 --> 00:10:23,510 Bắt đầu với vị trí hàng chục, bạn sẽ biết rằng 3 đi vào bảy 221 00:10:23,510 --> 00:10:27,620 hai lần để thực hiện một sáu với còn lại một. 222 00:10:27,620 --> 00:10:31,870 Bạn muốn viết hai ở đầu trang, và sau đó trừ 6 từ bảy, mang theo hơn 223 00:10:31,870 --> 00:10:34,980 phần còn lại của 14 lặp lại quá trình. 224 00:10:34,980 --> 00:10:39,410 >> Ba đi vào 14 bốn lần để làm cho 12, với phần còn lại hai. 225 00:10:39,410 --> 00:10:40,930 Và hai không mang theo hơn nữa. 226 00:10:40,930 --> 00:10:44,170 Vì vậy, hai sẽ được để lại phía dưới là phần còn lại. 227 00:10:44,170 --> 00:10:46,800 >> Và đó là những gì modulo cho bạn con số ở phía dưới. 228 00:10:46,800 --> 00:10:49,790 Vì vậy, 74 modulo ba sẽ cung cấp cho bạn hai. 229 00:10:49,790 --> 00:10:52,980 Và 10 modulo hai, cũng có sẽ cung cấp cho bạn số không. 230 00:10:52,980 --> 00:10:56,500 Bởi vì không có bất kỳ còn lại khi bạn chia 10 bởi hai. 231 00:10:56,500 --> 00:11:00,190 >> Sáu modulo năm, cũng năm đi vào sáu lần. 232 00:11:00,190 --> 00:11:01,830 Và sau đó nó đã một còn lại. 233 00:11:01,830 --> 00:11:04,720 Vì vậy, sáu năm là một modulo. 234 00:11:04,720 --> 00:11:07,950 >> Sau đó, nếu bạn có bảy modulo chín, bạn sẽ nhận được bảy. 235 00:11:07,950 --> 00:11:09,840 Vì chín lớn hơn bảy. 236 00:11:09,840 --> 00:11:15,020 Vì vậy, nó không phân chia tất cả thành bảy, còn để lại bảy là câu trả lời của bạn. 237 00:11:15,020 --> 00:11:18,340 >> Nếu bạn nghĩ về modulo nhiều hơn một chút, hãy nhớ rằng nó mang lại cho bạn 238 00:11:18,340 --> 00:11:21,020 còn lại sau khi bạn chia một cái gì đó. 239 00:11:21,020 --> 00:11:23,620 Suy nghĩ về cách bạn có thể có thể sử dụng nó trong tham lam. 240 00:11:23,620 --> 00:11:27,620 Hãy nói rằng người sử dụng yêu cầu $ 400,11. 241 00:11:27,620 --> 00:11:30,470 Một cách để tìm ra những gì bao nhiêu quý bạn cần mà không cần phải 242 00:11:30,470 --> 00:11:32,360 đếm từng một? 243 00:11:32,360 --> 00:11:37,480 >> Khi bạn tìm ra bao nhiêu phần tư bạn có thể sử dụng để làm cho $ 400,11, bao nhiêu 244 00:11:37,480 --> 00:11:38,880 thay đổi còn lại? 245 00:11:38,880 --> 00:11:42,110 Có lẽ là một sự kết hợp giữa đây modulo và chia sẽ đến trong 246 00:11:42,110 --> 00:11:46,200 tiện dụng để cung cấp cho bạn một mát mẻ, thanh lịch tiếp cận với vấn đề tham lam. 247 00:11:46,200 --> 00:11:49,030 Nhưng hãy nhớ rằng quản quy tắc vẫn còn được áp dụng. 248 00:11:49,030 --> 00:11:51,610 Luôn luôn sử dụng đồng tiền lớn nhất có thể. 249 00:11:51,610 --> 00:11:55,340 >> Một khi bạn đã thực hiện các tính toán như thế nào nhiều tiền xu để sử dụng, bước cuối cùng 250 00:11:55,340 --> 00:11:57,930 là để in ra các số đồng tiền mà bạn tính toán. 251 00:11:57,930 --> 00:12:01,610 Cho đến nay, chúng tôi đã sử dụng printf chức năng chỉ duy nhất cho chuỗi. 252 00:12:01,610 --> 00:12:05,200 Nhưng khi bạn muốn in ra một, or chỉ cần bất kỳ loại dữ liệu được lưu trữ 253 00:12:05,200 --> 00:12:09,200 trong một biến, bạn phải chỉ ra rằng việc sử dụng một trình giữ chỗ. 254 00:12:09,200 --> 00:12:12,400 >> Ở đây tôi đã bao gồm chỉ một số lời khuyên làm thế nào để in ra các giá trị. 255 00:12:12,400 --> 00:12:16,390 Nếu bạn có một số nguyên, bạn sẽ viết chuỗi bằng cách sử dụng% d như một 256 00:12:16,390 --> 00:12:17,450 giữ chỗ. 257 00:12:17,450 --> 00:12:20,170 Sau khi báo giá đóng cửa nhãn hiệu, nhập một dấu phẩy. 258 00:12:20,170 --> 00:12:24,530 Và sau đó đưa vào các số nguyên sẽ chiếm chỗ của% d khi in ra. 259 00:12:24,530 --> 00:12:27,150 >> Vì vậy, sau khi hiển thị số tiền xu được sử dụng, bạn 260 00:12:27,150 --> 00:12:28,500 kết thúc với tham lam. 261 00:12:28,500 --> 00:12:32,000 Hãy chắc chắn để kiểm tra tất cả các trường hợp góc, dọn dẹp phong cách của bạn một chút, và bạn 262 00:12:32,000 --> 00:12:33,350 tất cả các thiết lập để nộp. 263 00:12:33,350 --> 00:12:36,000 Vào cuối vấn đề thiết lập này, bạn sẽ quen thuộc hơn với các CS50 264 00:12:36,000 --> 00:12:39,940 thiết bị, thiết bị đầu cuối, và vòng lặp cấu trúc và các biến trong C. 265 00:12:39,940 --> 00:12:41,470 >> Bạn tốt trên con đường của bạn. 266 00:12:41,470 --> 00:12:43,040 Đường cong học tập có thể có vẻ khó khăn. 267 00:12:43,040 --> 00:12:44,690 Vì vậy, mang nó từng bước. 268 00:12:44,690 --> 00:12:47,110 Hãy chắc chắn rằng bạn viết ra mã giả trước khi lặn quá sâu 269 00:12:47,110 --> 00:12:49,000 vào cú pháp quen thuộc. 270 00:12:49,000 --> 00:12:52,030 >> Làm một việc cần làm, và phá vỡ các phân công thành nhỏ hơn, nhiều hơn 271 00:12:52,030 --> 00:12:53,440 nhiệm vụ quản lý. 272 00:12:53,440 --> 00:12:55,810 Khám phá tất cả các nguồn tài nguyên CS50. 273 00:12:55,810 --> 00:12:58,270 Ngoài bài giảng, rewatch này đi qua. 274 00:12:58,270 --> 00:12:59,790 >> Hãy chú ý đến phần. 275 00:12:59,790 --> 00:13:00,710 Kiểm tra quần short. 276 00:13:00,710 --> 00:13:04,640 Đọc những câu hỏi bạn cùng lớp của bạn ' Thảo luận trên, và gửi của riêng bạn. 277 00:13:04,640 --> 00:13:06,110 >> Tốt nhất của may mắn với p-bộ. 278 00:13:06,110 --> 00:13:07,200 Và cảm ơn cho xem. 279 00:13:07,200 --> 00:13:08,690 Đây là tham lam. 280 00:13:08,690 --> 00:13:15,691 >> [MUSIC CHƠI]