>> ROB BOWDEN: مرحبا، أنا روب.
وآمل أن تتم محاسبتك حتى للحصول على الائتمان.
أولا حتى شيء يتعين علينا القيام به يتم طلب بطاقة الائتمان
عدد من المستخدم.
هنا، نحن نستخدم getLongLong.
أنت يمكن أن تستخدم أيضا getString، ولكن في هذه الحالة، وكنت بحاجة للتحقق
أنه لا توجد غير رقمية الأحرف في السلسلة.
لذلك سنستخدم getLongLong.
>> تذكر أنه لا يمكنك استخدام شيء مثل getInt، لأن عدد سيكون
كبيرة جدا لاحتوائه في عدد صحيح.
مرة واحدة لدينا هذا العدد، ونحن نرى هنا هذا في حين حلقة.
لذلك هذا في حين تنفذ حلقة خوارزمية Luhn بأن لك
نرى في المواصفات pset.
>> وانه سيكون في الواقع أن تكون ذكية قليلا.
حتى في المواصفات pset، لاحظ أن الخطوات الأولى والثانية منفصلة.
علينا أولا يذهب أكثر من بطاقة الائتمان بأكمله عدد، وتبحث عن كل أخرى
حرف بدءا من الثاني إلى الحرف الأخير، وضرب لهم
وإضافة جميع الأرقام.
ثم بعد ذلك، ونضيف في جميع الأرقام الأخرى.
>> وذلك بدلا من القيام تلك في اثنين خطوات منفصلة، ​​ونحن في طريقنا إلى الجمع بين
لهم في التكرار واحد على كامل رقم بطاقة الائتمان.
هنا، ونحن نرى كثافة يساوي الرقم الحالي رقم بطاقة الائتمان، وزارة الدفاع 10.
ما هو رقم بطاقة الائتمان وزارة الدفاع 10 تفعل؟
انها تعطينا الرقم الأخير في عدد صحيح.
حتى أن نتذكر أنه إذا قسمنا عددهم بنسبة 10، ثم ما تبقى
سيكون مهما أن الرقم الأخير هو.
23 مقسومة على 10، و سوف تبقى يكون 3.
>> وبالتالي فإن الرقم الأخير، والآن هنا، ونحن نرى نحن المتفرعة على MULT بنسبة 2.
وذلك ما نحن ذاهبون إلى استخدام MULT بنسبة 2 ليتم التفريق بين
واحدة من "كل الأرقام الأخرى من في "أرقام الرقم الثاني.
MULT بنسبة 2 سوف تبدأ على النحو كاذبة، لأن الرقم الأخير لا ينبغي
يعتبر من الثانية إلى الرقم الأخير.
>> حتى ذلك الحين في نهاية هذا للحلقة، ونحن نرى أننا في طريقنا لتغيير هذا
من false إلى true.
على التكرار التالي للللحلقة، انها سوف يعتبر صحيحا حتى
في النهاية، عندما نغير فإنه من الصحيح إلى false.
لأن ثم سنكون في الثالث ل الرقم الأخير، وهي ليست واحدة من
أرقام أننا يجب أن تتضاعف بنسبة 2.
>> حتى إذا كنا يحدث ليكون على واحدة من تلك الأرقام التي نريد أن تتضاعف بنسبة 2،
نرى نحن مضيفا أن الاختباري لدينا.
وهنا، نحن باستخدام مشغل الثلاثي لمرة واحدة
مرة أخرى تكون ذكية قليلا.
إذا كان الأمر كذلك أرقام الحالي هو أقل من 5، ثم يمكننا القيام به مجرد أرقام مرات الحالي 2.
هذا بسيط.
اذا كان 1، ثم نريد أن نضيف 2.
اذا كان 2، ونحن نريد لإضافة 4.
اذا كان 4، ونحن نريد لإضافة 8.
>> إذن ما هو خاص حول 5؟
حسنا، 5 مرات 2 هو 10.
وتذكر من المواصفات التي pset نحن نريد لإضافة أرقام لل
عدد مرات 2، وليس عدد مرات 2 نفسها.
لذلك إذا كان العدد الأصلي و7، 7 مرات 2 هو 14.
نريد أن نضيف 1 بالإضافة إلى 4 إلى الرقم، وليس 14.
>> حتى هنا، إذا كان الرقم 5 أو أكبر، ما نقوم به هو الرقم الحالي
مرة 2 ناقص 9.
وإذا كنت تفكر في ذلك، 5 مرات 2 هو 10.
ولذا فإننا تقوم بإضافة 1، الذي هو 10 ناقص 9.
و6 مرات 2 هو 12.
لذلك نحن مضيفا 3، والتي 12 ناقص 9.
وانه يعمل لجميع الأرقام.
>> وهذا ما نقوم بإضافة لدينا الاختباري.
وهذا هو آخر ما التعامل مع الخطوة اثنين من خوارزمية Luhn، والذي هو مجرد
مضيفا الرقم اذا لم يحدث ليكون واحدا من كل الأرقام الأخرى.
ذلك مرة واحدة لدينا ذلك، وهذا هو الحفاظ المسار من أول حرفين من
رقم بطاقة الائتمان، وأول اثنين أرقام، لأننا ذاهبون في نهاية المطاف
تريد أن تستخدم هذا إلى هنا للتحقق، كل الحق، على تأشيرة لابد أن يبدأ
مع هذا، واحتياجات أمريكان إكسبريس لتبدأ مع هذا، وهلم جرا.
>> أخيرا، ونحن نفعل بطاقة الائتمان عدد يساوي بطاقة الائتمان
عدد مقسوما على 10.
لماذا نفعل ذلك؟
حسنا، نحن فقط التعامل مع الرقم الأخير.
سوف يقسم بنسبة 10 التحول عدد كامل المسؤولية.
وحتى الآن عندما كنا حلقة الوراء، نحن سيتم التعامل مع
الثانية إلى الرقم الأخير.
ثم عندما ضربنا هذا مرة أخرى، ونحن في طريقنا بقطع ثاني إلى آخر
أرقام، حلقة مرة أخرى، والتعامل مع الثالث إلى آخر أرقام، وهلم جرا، حتى
عدد يصل إلى 0، وعند هذه النقطة نحن الخروج من حلقة الوقت.
>> نحن أيضا حفظ المسار من الائتمان طول رقم البطاقة، منذ ذلك
المهم التمييز سواء كان ذلك رقم بطاقة ائتمان سارية المفعول.
وحتى الآن، مرة واحدة لقد حسبت الاختباري، يمكننا تحديد ما إذا كان
هي بطاقة صالحة.
وزارة الدفاع الاختباري 10 جزء من خوارزمية Luhn ل.
إذا الاختباري وزارة الدفاع 10 عوائد شيء غير صفرية، ثم وهذا سيعود صحيح،
وفي هذه الحالة، فإن عدد يجب أن تكون غير صالحة.
>> خلاف ذلك، إذا الاختباري وزارة الدفاع 10 0، ثم نتمكن من الاستمرار.
هذا كبيرة الا اذا يقول، إذا كان أول رقمين تساوي AMEX 1،
حيث هنا، ونحن نرى أن AMEX 1، وفقا للمواصفات، هو 34.
وسنقوم أيضا مقارنتها لAMEX 2، والذي هو 37.
وبطاقة الائتمان طول الرقم يساوي أمريكان إكسبريس المتوقعة
طول البطاقة، ثم وسعنا طباعة أمريكان إكسبريس.
>> سنفعل شيئا مماثلا مع فيزا.
الأرقام الأولين تحتاج إلى أن تكون أكبر من أو يساوي 40 أو أقل
من أو يساوي 49.
تلك تمثل بطاقات فيزا صالحة.
ويحتاج طول ليكون مساويا ل تأشيرة أو فيزا طول 1 طول 2.
وهكذا يجب أن يكون طول إما 13 أو 16 أرقام.
>> وأخيرا مع ماستر كارد، انها مماثلة لفيزا، أن الأولين
أرقام تحتاج إلى أن تكون في بعض المدى، ويجب أن طول
يكون بالضبط 16 أرقام.
ذلك إذا كان أي من تلك الحالات عقد، ثم في الحالة الأولى، ونحن سوف طباعة AMEX.
إذا يحمل هذه الحالة، فإننا سوف طباعة التأشيرة.
إذا يحمل هذه الحالة، سنقوم طباعة ماستركارد.
>> ولكن إذا كان أي من تلك الاستمرار، حتى إذا كان المجموع الاختباري صالحة،
ما زلنا طباعة صالح.
لأنها ليست واحدة من هذه الأنواع من البطاقات.
اسمي روب، وأرجو أن وجدت للاهتمام الائتمان.