1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB BOWDEN: مرحبا، أنا روب. 3 00:00:14,570 --> 00:00:17,610 وآمل أن تتم محاسبتك حتى للحصول على الائتمان. 4 00:00:17,610 --> 00:00:20,710 أولا حتى شيء يتعين علينا القيام به يتم طلب بطاقة الائتمان 5 00:00:20,710 --> 00:00:22,710 عدد من المستخدم. 6 00:00:22,710 --> 00:00:25,060 هنا، نحن نستخدم getLongLong. 7 00:00:25,060 --> 00:00:29,070 أنت يمكن أن تستخدم أيضا getString، ولكن في هذه الحالة، وكنت بحاجة للتحقق 8 00:00:29,070 --> 00:00:32,340 أنه لا توجد غير رقمية الأحرف في السلسلة. 9 00:00:32,340 --> 00:00:34,560 لذلك سنستخدم getLongLong. 10 00:00:34,560 --> 00:00:38,070 >> تذكر أنه لا يمكنك استخدام شيء مثل getInt، لأن عدد سيكون 11 00:00:38,070 --> 00:00:40,650 كبيرة جدا لاحتوائه في عدد صحيح. 12 00:00:40,650 --> 00:00:44,480 مرة واحدة لدينا هذا العدد، ونحن نرى هنا هذا في حين حلقة. 13 00:00:44,480 --> 00:00:48,210 لذلك هذا في حين تنفذ حلقة خوارزمية Luhn بأن لك 14 00:00:48,210 --> 00:00:50,980 نرى في المواصفات pset. 15 00:00:50,980 --> 00:00:53,830 >> وانه سيكون في الواقع أن تكون ذكية قليلا. 16 00:00:53,830 --> 00:01:00,800 حتى في المواصفات pset، لاحظ أن الخطوات الأولى والثانية منفصلة. 17 00:01:00,800 --> 00:01:05,160 علينا أولا يذهب أكثر من بطاقة الائتمان بأكمله عدد، وتبحث عن كل أخرى 18 00:01:05,160 --> 00:01:09,775 حرف بدءا من الثاني إلى الحرف الأخير، وضرب لهم 19 00:01:09,775 --> 00:01:11,750 وإضافة جميع الأرقام. 20 00:01:11,750 --> 00:01:16,150 ثم بعد ذلك، ونضيف في جميع الأرقام الأخرى. 21 00:01:16,150 --> 00:01:20,660 >> وذلك بدلا من القيام تلك في اثنين خطوات منفصلة، ​​ونحن في طريقنا إلى الجمع بين 22 00:01:20,660 --> 00:01:24,430 لهم في التكرار واحد على كامل رقم بطاقة الائتمان. 23 00:01:24,430 --> 00:01:29,710 هنا، ونحن نرى كثافة يساوي الرقم الحالي رقم بطاقة الائتمان، وزارة الدفاع 10. 24 00:01:29,710 --> 00:01:32,050 ما هو رقم بطاقة الائتمان وزارة الدفاع 10 تفعل؟ 25 00:01:32,050 --> 00:01:35,750 انها تعطينا الرقم الأخير في عدد صحيح. 26 00:01:35,750 --> 00:01:39,340 حتى أن نتذكر أنه إذا قسمنا عددهم بنسبة 10، ثم ما تبقى 27 00:01:39,340 --> 00:01:42,180 سيكون مهما أن الرقم الأخير هو. 28 00:01:42,180 --> 00:01:46,560 23 مقسومة على 10، و سوف تبقى يكون 3. 29 00:01:46,560 --> 00:01:53,760 >> وبالتالي فإن الرقم الأخير، والآن هنا، ونحن نرى نحن المتفرعة على MULT بنسبة 2. 30 00:01:53,760 --> 00:01:57,630 وذلك ما نحن ذاهبون إلى استخدام MULT بنسبة 2 ليتم التفريق بين 31 00:01:57,630 --> 00:02:02,110 واحدة من "كل الأرقام الأخرى من في "أرقام الرقم الثاني. 32 00:02:02,110 --> 00:02:08,310 MULT بنسبة 2 سوف تبدأ على النحو كاذبة، لأن الرقم الأخير لا ينبغي 33 00:02:08,310 --> 00:02:11,750 يعتبر من الثانية إلى الرقم الأخير. 34 00:02:11,750 --> 00:02:16,760 >> حتى ذلك الحين في نهاية هذا للحلقة، ونحن نرى أننا في طريقنا لتغيير هذا 35 00:02:16,760 --> 00:02:18,870 من false إلى true. 36 00:02:18,870 --> 00:02:22,520 على التكرار التالي للللحلقة، انها سوف يعتبر صحيحا حتى 37 00:02:22,520 --> 00:02:25,090 في النهاية، عندما نغير فإنه من الصحيح إلى false. 38 00:02:25,090 --> 00:02:28,290 لأن ثم سنكون في الثالث ل الرقم الأخير، وهي ليست واحدة من 39 00:02:28,290 --> 00:02:32,210 أرقام أننا يجب أن تتضاعف بنسبة 2. 40 00:02:32,210 --> 00:02:37,410 >> حتى إذا كنا يحدث ليكون على واحدة من تلك الأرقام التي نريد أن تتضاعف بنسبة 2، 41 00:02:37,410 --> 00:02:40,610 نرى نحن مضيفا أن الاختباري لدينا. 42 00:02:40,610 --> 00:02:43,640 وهنا، نحن باستخدام مشغل الثلاثي لمرة واحدة 43 00:02:43,640 --> 00:02:45,470 مرة أخرى تكون ذكية قليلا. 44 00:02:45,470 --> 00:02:50,170 إذا كان الأمر كذلك أرقام الحالي هو أقل من 5، ثم يمكننا القيام به مجرد أرقام مرات الحالي 2. 45 00:02:50,170 --> 00:02:50,690 هذا بسيط. 46 00:02:50,690 --> 00:02:52,770 اذا كان 1، ثم نريد أن نضيف 2. 47 00:02:52,770 --> 00:02:54,090 اذا كان 2، ونحن نريد لإضافة 4. 48 00:02:54,090 --> 00:02:55,530 اذا كان 4، ونحن نريد لإضافة 8. 49 00:02:55,530 --> 00:02:57,400 >> إذن ما هو خاص حول 5؟ 50 00:02:57,400 --> 00:03:00,290 حسنا، 5 مرات 2 هو 10. 51 00:03:00,290 --> 00:03:05,920 وتذكر من المواصفات التي pset نحن نريد لإضافة أرقام لل 52 00:03:05,920 --> 00:03:09,300 عدد مرات 2، وليس عدد مرات 2 نفسها. 53 00:03:09,300 --> 00:03:13,920 لذلك إذا كان العدد الأصلي و7، 7 مرات 2 هو 14. 54 00:03:13,920 --> 00:03:18,930 نريد أن نضيف 1 بالإضافة إلى 4 إلى الرقم، وليس 14. 55 00:03:18,930 --> 00:03:24,050 >> حتى هنا، إذا كان الرقم 5 أو أكبر، ما نقوم به هو الرقم الحالي 56 00:03:24,050 --> 00:03:26,470 مرة 2 ناقص 9. 57 00:03:26,470 --> 00:03:29,940 وإذا كنت تفكر في ذلك، 5 مرات 2 هو 10. 58 00:03:29,940 --> 00:03:33,130 ولذا فإننا تقوم بإضافة 1، الذي هو 10 ناقص 9. 59 00:03:33,130 --> 00:03:35,490 و6 مرات 2 هو 12. 60 00:03:35,490 --> 00:03:38,380 لذلك نحن مضيفا 3، والتي 12 ناقص 9. 61 00:03:38,380 --> 00:03:40,250 وانه يعمل لجميع الأرقام. 62 00:03:40,250 --> 00:03:43,330 >> وهذا ما نقوم بإضافة لدينا الاختباري. 63 00:03:43,330 --> 00:03:49,970 وهذا هو آخر ما التعامل مع الخطوة اثنين من خوارزمية Luhn، والذي هو مجرد 64 00:03:49,970 --> 00:03:55,010 مضيفا الرقم اذا لم يحدث ليكون واحدا من كل الأرقام الأخرى. 65 00:03:55,010 --> 00:04:01,440 ذلك مرة واحدة لدينا ذلك، وهذا هو الحفاظ المسار من أول حرفين من 66 00:04:01,440 --> 00:04:05,220 رقم بطاقة الائتمان، وأول اثنين أرقام، لأننا ذاهبون في نهاية المطاف 67 00:04:05,220 --> 00:04:08,980 تريد أن تستخدم هذا إلى هنا للتحقق، كل الحق، على تأشيرة لابد أن يبدأ 68 00:04:08,980 --> 00:04:14,440 مع هذا، واحتياجات أمريكان إكسبريس لتبدأ مع هذا، وهلم جرا. 69 00:04:14,440 --> 00:04:16,850 >> أخيرا، ونحن نفعل بطاقة الائتمان عدد يساوي بطاقة الائتمان 70 00:04:16,850 --> 00:04:18,730 عدد مقسوما على 10. 71 00:04:18,730 --> 00:04:19,829 لماذا نفعل ذلك؟ 72 00:04:19,829 --> 00:04:22,070 حسنا، نحن فقط التعامل مع الرقم الأخير. 73 00:04:22,070 --> 00:04:24,880 سوف يقسم بنسبة 10 التحول عدد كامل المسؤولية. 74 00:04:24,880 --> 00:04:27,150 وحتى الآن عندما كنا حلقة الوراء، نحن سيتم التعامل مع 75 00:04:27,150 --> 00:04:28,540 الثانية إلى الرقم الأخير. 76 00:04:28,540 --> 00:04:31,060 ثم عندما ضربنا هذا مرة أخرى، ونحن في طريقنا بقطع ثاني إلى آخر 77 00:04:31,060 --> 00:04:35,060 أرقام، حلقة مرة أخرى، والتعامل مع الثالث إلى آخر أرقام، وهلم جرا، حتى 78 00:04:35,060 --> 00:04:40,120 عدد يصل إلى 0، وعند هذه النقطة نحن الخروج من حلقة الوقت. 79 00:04:40,120 --> 00:04:43,560 >> نحن أيضا حفظ المسار من الائتمان طول رقم البطاقة، منذ ذلك 80 00:04:43,560 --> 00:04:48,440 المهم التمييز سواء كان ذلك رقم بطاقة ائتمان سارية المفعول. 81 00:04:48,440 --> 00:04:53,560 وحتى الآن، مرة واحدة لقد حسبت الاختباري، يمكننا تحديد ما إذا كان 82 00:04:53,560 --> 00:04:55,180 هي بطاقة صالحة. 83 00:04:55,180 --> 00:04:58,010 وزارة الدفاع الاختباري 10 جزء من خوارزمية Luhn ل. 84 00:04:58,010 --> 00:05:03,360 إذا الاختباري وزارة الدفاع 10 عوائد شيء غير صفرية، ثم وهذا سيعود صحيح، 85 00:05:03,360 --> 00:05:06,650 وفي هذه الحالة، فإن عدد يجب أن تكون غير صالحة. 86 00:05:06,650 --> 00:05:12,590 >> خلاف ذلك، إذا الاختباري وزارة الدفاع 10 0، ثم نتمكن من الاستمرار. 87 00:05:12,590 --> 00:05:18,360 هذا كبيرة الا اذا يقول، إذا كان أول رقمين تساوي AMEX 1، 88 00:05:18,360 --> 00:05:23,640 حيث هنا، ونحن نرى أن AMEX 1، وفقا للمواصفات، هو 34. 89 00:05:23,640 --> 00:05:26,595 وسنقوم أيضا مقارنتها لAMEX 2، والذي هو 37. 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 وبطاقة الائتمان طول الرقم يساوي أمريكان إكسبريس المتوقعة 92 00:05:34,210 --> 00:05:37,910 طول البطاقة، ثم وسعنا طباعة أمريكان إكسبريس. 93 00:05:37,910 --> 00:05:41,920 >> سنفعل شيئا مماثلا مع فيزا. 94 00:05:41,920 --> 00:05:51,940 الأرقام الأولين تحتاج إلى أن تكون أكبر من أو يساوي 40 أو أقل 95 00:05:51,940 --> 00:05:54,290 من أو يساوي 49. 96 00:05:54,290 --> 00:05:57,180 تلك تمثل بطاقات فيزا صالحة. 97 00:05:57,180 --> 00:06:01,530 ويحتاج طول ليكون مساويا ل تأشيرة أو فيزا طول 1 طول 2. 98 00:06:01,530 --> 00:06:07,320 وهكذا يجب أن يكون طول إما 13 أو 16 أرقام. 99 00:06:07,320 --> 00:06:12,240 >> وأخيرا مع ماستر كارد، انها مماثلة لفيزا، أن الأولين 100 00:06:12,240 --> 00:06:15,340 أرقام تحتاج إلى أن تكون في بعض المدى، ويجب أن طول 101 00:06:15,340 --> 00:06:19,440 يكون بالضبط 16 أرقام. 102 00:06:19,440 --> 00:06:24,390 ذلك إذا كان أي من تلك الحالات عقد، ثم في الحالة الأولى، ونحن سوف طباعة AMEX. 103 00:06:24,390 --> 00:06:26,310 إذا يحمل هذه الحالة، فإننا سوف طباعة التأشيرة. 104 00:06:26,310 --> 00:06:28,400 إذا يحمل هذه الحالة، سنقوم طباعة ماستركارد. 105 00:06:28,400 --> 00:06:32,170 >> ولكن إذا كان أي من تلك الاستمرار، حتى إذا كان المجموع الاختباري صالحة، 106 00:06:32,170 --> 00:06:33,900 ما زلنا طباعة صالح. 107 00:06:33,900 --> 00:06:37,050 لأنها ليست واحدة من هذه الأنواع من البطاقات. 108 00:06:37,050 --> 00:06:40,030 اسمي روب، وأرجو أن وجدت للاهتمام الائتمان. 109 00:06:40,030 --> 00:06:46,272