1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB Bowden: Xin chào, tôi Rob. 3 00:00:14,570 --> 00:00:17,610 Và tôi hy vọng bạn sẽ bị tính lên cho tín dụng. 4 00:00:17,610 --> 00:00:20,710 Điều đầu tiên nên chúng ta cần làm được yêu cầu thẻ tín dụng 5 00:00:20,710 --> 00:00:22,710 số từ người dùng. 6 00:00:22,710 --> 00:00:25,060 Ở đây, chúng tôi đang sử dụng getLongLong. 7 00:00:25,060 --> 00:00:29,070 Bạn cũng có thể đã sử dụng getString, nhưng trong trường hợp đó, bạn cần phải kiểm tra 8 00:00:29,070 --> 00:00:32,340 mà không có không phải số ký tự trong chuỗi. 9 00:00:32,340 --> 00:00:34,560 Vì vậy, chúng tôi sẽ sử dụng getLongLong. 10 00:00:34,560 --> 00:00:38,070 >> Hãy nhớ rằng bạn không thể sử dụng một cái gì đó như getInt, vì số lượng sẽ được 11 00:00:38,070 --> 00:00:40,650 quá lớn để phù hợp với một số nguyên. 12 00:00:40,650 --> 00:00:44,480 Một khi chúng ta có con số đó, chúng tôi thấy ở đây trong khi vòng lặp này. 13 00:00:44,480 --> 00:00:48,210 Vì vậy vòng lặp trong khi điều này được thực hiện Thuật toán Luhn của bạn 14 00:00:48,210 --> 00:00:50,980 thấy trong spec pset. 15 00:00:50,980 --> 00:00:53,830 >> Và nó thực sự đi được một chút thông minh. 16 00:00:53,830 --> 00:01:00,800 Vì vậy, trong spec pset, nhận thấy rằng Các bước một và hai là riêng biệt. 17 00:01:00,800 --> 00:01:05,160 Trước tiên chúng ta đi qua toàn bộ thẻ tín dụng số, tìm kiếm mỗi khác 18 00:01:05,160 --> 00:01:09,775 nhân vật bắt đầu từ thứ hai đến ký tự cuối cùng, và nhân chúng 19 00:01:09,775 --> 00:01:11,750 và thêm tất cả các chữ số. 20 00:01:11,750 --> 00:01:16,150 Sau đó, sau đó, chúng tôi thêm vào tất cả các chữ số khác. 21 00:01:16,150 --> 00:01:20,660 >> Vì vậy, thay vì làm những người trong hai bước riêng biệt, chúng ta sẽ kết hợp 22 00:01:20,660 --> 00:01:24,430 chúng vào một sự lặp lại trong toàn bộ số thẻ tín dụng. 23 00:01:24,430 --> 00:01:29,710 Ở đây, chúng ta thấy int hiện chữ số bình đẳng số thẻ tín dụng, mod 10. 24 00:01:29,710 --> 00:01:32,050 Số thẻ tín dụng là những gì mod 10 làm gì? 25 00:01:32,050 --> 00:01:35,750 Nó đem lại cho chúng ta những chữ số cuối cùng trong toàn bộ số. 26 00:01:35,750 --> 00:01:39,340 Vì vậy, hãy nhớ rằng nếu chúng ta chia thứ tăng 10, sau đó phần còn lại 27 00:01:39,340 --> 00:01:42,180 sẽ là bất cứ điều gì mà chữ số cuối cùng là. 28 00:01:42,180 --> 00:01:46,560 23 chia cho 10, còn lại sẽ là 3. 29 00:01:46,560 --> 00:01:53,760 >> Vì vậy, các chữ số cuối cùng, bây giờ đây, chúng ta thấy chúng tôi đang phân nhánh trên mult 2. 30 00:01:53,760 --> 00:01:57,630 Vì vậy, những gì chúng ta sẽ được sử dụng mult 2 cho được sự khác biệt giữa 31 00:01:57,630 --> 00:02:02,110 một trong những "mỗi số khác các chữ số thứ hai "con số. 32 00:02:02,110 --> 00:02:08,310 Mult 2 sẽ bắt đầu ra như sai, vì các chữ số cuối cùng không nên 33 00:02:08,310 --> 00:02:11,750 được xem xét từ thứ hai chữ số cuối cùng. 34 00:02:11,750 --> 00:02:16,760 >> Vì vậy, sau đó vào cuối này cho vòng lặp, chúng tôi thấy rằng chúng ta sẽ thay đổi điều này 35 00:02:16,760 --> 00:02:18,870 từ false thành true. 36 00:02:18,870 --> 00:02:22,520 Trên phiên bản kế tiếp của vòng lặp cho, nó sẽ được coi là đúng cho đến khi 37 00:02:22,520 --> 00:02:25,090 Cuối cùng, khi chúng ta thay đổi nó từ true sang false. 38 00:02:25,090 --> 00:02:28,290 Bởi vì sau đó chúng tôi sẽ được vào thứ ba chữ số cuối cùng, đó không phải là một trong những 39 00:02:28,290 --> 00:02:32,210 chữ số mà chúng ta nên nhân với 2. 40 00:02:32,210 --> 00:02:37,410 >> Vì vậy, nếu chúng tôi xảy ra được trên một trong những chữ số mà chúng tôi muốn nhân với 2, 41 00:02:37,410 --> 00:02:40,610 chúng ta thấy chúng ta đang thêm để kiểm tra của chúng tôi. 42 00:02:40,610 --> 00:02:43,640 Và ở đây, chúng tôi đang sử dụng điều hành ternary một lần 43 00:02:43,640 --> 00:02:45,470 một lần nữa là một chút thông minh. 44 00:02:45,470 --> 00:02:50,170 Vì vậy, nếu hiện chữ số nhỏ hơn 5, sau đó chúng tôi chỉ có thể làm hiện lần chữ số 2. 45 00:02:50,170 --> 00:02:50,690 Đó là đơn giản. 46 00:02:50,690 --> 00:02:52,770 Nếu đó là 1, sau đó chúng tôi muốn thêm 2. 47 00:02:52,770 --> 00:02:54,090 Nếu đó là 2, chúng ta muốn thêm 4. 48 00:02:54,090 --> 00:02:55,530 Nếu đó là 4, chúng ta muốn thêm 8. 49 00:02:55,530 --> 00:02:57,400 >> Vì vậy, những gì đặc biệt về 5? 50 00:02:57,400 --> 00:03:00,290 Vâng, 5 lần 2 là 10. 51 00:03:00,290 --> 00:03:05,920 Và ghi nhớ từ các spec pset mà chúng ta muốn thêm các chữ số của 52 00:03:05,920 --> 00:03:09,300 lần thứ 2, và không phải là lần thứ 2 chính nó. 53 00:03:09,300 --> 00:03:13,920 Vì vậy, nếu số lượng ban đầu được 7, 7 lần 2 là 14. 54 00:03:13,920 --> 00:03:18,930 Chúng ta muốn thêm 1 cộng với 4 số lượng, không 14. 55 00:03:18,930 --> 00:03:24,050 >> Vì vậy, ở đây, nếu số lượng là 5 hoặc cao hơn, những gì chúng ta đang làm hiện chữ số là 56 00:03:24,050 --> 00:03:26,470 lần 2 trừ đi 9. 57 00:03:26,470 --> 00:03:29,940 Và nếu bạn nghĩ về điều đó, 5 lần 2 là 10. 58 00:03:29,940 --> 00:03:33,130 Và vì vậy chúng tôi đang thêm 1, đó là 10 trừ đi 9. 59 00:03:33,130 --> 00:03:35,490 Và 6 lần 2 là 12. 60 00:03:35,490 --> 00:03:38,380 Vì vậy, chúng ta đang thêm 3, 12 trừ đi 9. 61 00:03:38,380 --> 00:03:40,250 Và làm việc cho tất cả các số. 62 00:03:40,250 --> 00:03:43,330 >> Vì vậy, đó là những gì chúng ta đang thêm để kiểm tra của chúng tôi. 63 00:03:43,330 --> 00:03:49,970 Và khác đây là những gì xử lý Bước Hai của thuật toán Luhn, mà chỉ là 64 00:03:49,970 --> 00:03:55,010 thêm các chữ số nếu nó không xảy ra là một trong những hàng chữ số khác. 65 00:03:55,010 --> 00:04:01,440 Vì vậy, một khi chúng ta đã có, điều này được giữ theo dõi của hai nhân vật đầu tiên của 66 00:04:01,440 --> 00:04:05,220 số thẻ tín dụng, lần đầu tiên hai chữ số, vì chúng tôi cuối cùng sẽ 67 00:04:05,220 --> 00:04:08,980 muốn sử dụng ở đây để xác minh, tất cả các bên phải, một Visa có để bắt đầu 68 00:04:08,980 --> 00:04:14,440 với điều này, và một nhu cầu American Express để bắt đầu với điều này, và như vậy. 69 00:04:14,440 --> 00:04:16,850 >> Cuối cùng, chúng tôi làm thẻ tín dụng số bằng thẻ tín dụng 70 00:04:16,850 --> 00:04:18,730 số chia cho 10. 71 00:04:18,730 --> 00:04:19,829 Tại sao chúng ta làm điều đó? 72 00:04:19,829 --> 00:04:22,070 Vâng, chúng tôi chỉ xử lý các chữ số cuối cùng. 73 00:04:22,070 --> 00:04:24,880 Chia cho 10 sẽ chuyển toàn bộ số hơn. 74 00:04:24,880 --> 00:04:27,150 Vì vậy, bây giờ khi chúng ta lặp lại, chúng tôi sẽ được xử lý 75 00:04:27,150 --> 00:04:28,540 thứ hai chữ số cuối cùng. 76 00:04:28,540 --> 00:04:31,060 Sau đó, khi chúng ta nhấn này một lần nữa, chúng ta sẽ để cắt đứt các thứ hai để cuối cùng 77 00:04:31,060 --> 00:04:35,060 chữ số, lặp lại, và xử lý thứ ba cuối chữ số, và như vậy, cho đến khi 78 00:04:35,060 --> 00:04:40,120 số đạt đến 0, lúc này chúng ta thoát ra khỏi vòng lặp while. 79 00:04:40,120 --> 00:04:43,560 >> Chúng tôi cũng theo dõi các tín dụng chiều dài số thẻ, vì đó là 80 00:04:43,560 --> 00:04:48,440 quan trọng để phân biệt cho dù đó là một số thẻ tín dụng hợp lệ. 81 00:04:48,440 --> 00:04:53,560 Vì vậy, bây giờ, khi chúng tôi đã tính toán kiểm tra, chúng ta có thể xác định xem nó 82 00:04:53,560 --> 00:04:55,180 là một thẻ hợp lệ. 83 00:04:55,180 --> 00:04:58,010 Checksum mod 10 là một phần của thuật toán Luhn của. 84 00:04:58,010 --> 00:05:03,360 Nếu kiểm tra mod 10 trở về một cái gì đó khác không, thì điều này sẽ trở thành sự thật, 85 00:05:03,360 --> 00:05:06,650 trong trường hợp này, số phải không hợp lệ. 86 00:05:06,650 --> 00:05:12,590 >> Nếu không, nếu kiểm tra mod 10 là 0, sau đó chúng tôi có thể tiếp tục. 87 00:05:12,590 --> 00:05:18,360 Này lớn khác nếu nói rằng, nếu là người đầu tiên hai chữ số bằng nhau để AMEX 1, 88 00:05:18,360 --> 00:05:23,640 nơi lên ở đây, chúng ta thấy rằng AMEX 1, theo spec, là 34. 89 00:05:23,640 --> 00:05:26,595 Và chúng tôi cũng sẽ so sánh nó để AMEX 2, đó là 37. 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 Và độ dài số thẻ tín dụng là bằng với dự kiến ​​American Express 92 00:05:34,210 --> 00:05:37,910 chiều dài thẻ, sau đó chúng ta có thể in American Express. 93 00:05:37,910 --> 00:05:41,920 >> Chúng tôi sẽ làm một điều tương tự với Visa. 94 00:05:41,920 --> 00:05:51,940 Hai chữ số đầu tiên cần phải được lớn hơn hơn hoặc bằng 40, hoặc ít hơn 95 00:05:51,940 --> 00:05:54,290 hơn hoặc bằng 49. 96 00:05:54,290 --> 00:05:57,180 Những đại diện cho thẻ Visa hợp lệ. 97 00:05:57,180 --> 00:06:01,530 Và chiều dài cần phải được bằng Thị thực dài 1 hoặc Visa dài 2. 98 00:06:01,530 --> 00:06:07,320 Và do đó, chiều dài phải là một trong hai 13 hoặc 16 chữ số dài. 99 00:06:07,320 --> 00:06:12,240 >> Và cuối cùng với MasterCard, đó là tương tự như Visa, mà lần đầu tiên hai 100 00:06:12,240 --> 00:06:15,340 chữ số cần phải được trong một số phạm vi, và phải chiều dài 101 00:06:15,340 --> 00:06:19,440 được chính xác 16 chữ số. 102 00:06:19,440 --> 00:06:24,390 Vì vậy, nếu có những trường hợp tổ chức, sau đó trong trường hợp đầu tiên, chúng tôi sẽ in AMEX. 103 00:06:24,390 --> 00:06:26,310 Nếu trường hợp này tổ chức, chúng tôi sẽ in Visa. 104 00:06:26,310 --> 00:06:28,400 Nếu trường hợp này tổ chức, chúng tôi sẽ in MasterCard. 105 00:06:28,400 --> 00:06:32,170 >> Nhưng nếu không có những tổ chức, thậm chí nếu kiểm tra là hợp lệ, 106 00:06:32,170 --> 00:06:33,900 chúng tôi vẫn in không hợp lệ. 107 00:06:33,900 --> 00:06:37,050 Bởi vì nó không phải là một trong những những loại thẻ. 108 00:06:37,050 --> 00:06:40,030 Tên tôi là Rob, và tôi hy vọng bạn thấy thú vị tín dụng. 109 00:06:40,030 --> 00:06:46,272