ROB BOWDEN: سلام، من راب هستم. و من امیدوارم که شما متهم هستید برای اعتبار. پس اولین چیزی که ما باید انجام دهیم است درخواست کارت اعتباری تعداد از کاربر. در اینجا، ما با استفاده از getLongLong. شما می توانید همچنین getString استفاده می شود، اما در آن صورت، شما نیاز به بررسی که هیچ غیر عددی وجود دارد کاراکتر در رشته. پس ما getLongLong استفاده کنید. به یاد داشته باشید که شما می توانید چیزی استفاده نمی مانند getInt، از تعداد خواهد بود بیش از حد بزرگ به جا در یک عدد صحیح. زمانی که ما این تعداد، ما اینجا را ببینید این حلقه در حالی که. بنابراین این حلقه در حالی که در حال اجرای الگوریتم Luhn را که شما در تنظیمات pset را ببینید. و این در واقع رفتن به کمی باهوش. بنابراین در تنظیمات pset، توجه کنید که مراحل یک و دو جدا هستند. ما برای اولین بار در کل کارت های اعتباری به تعداد، به دنبال هر دیگر شخصیت شروع از دوم به شخصیت گذشته، و ضرب آنها و اضافه کردن همه رقم. بعد از آن، ما اضافه کردن در همه رقم دیگر. بنابراین به جای انجام آن در دو مراحل جداگانه، ما قصد داریم به ترکیب آنها را در یک تکرار بیش از کل شماره کارت اعتباری. در اینجا، ما می بینیم اعضای هیات برابر فعلی رقمی شماره کارت اعتباری، وزارت دفاع 10. شماره کارت اعتباری چیست وزارت دفاع 10 انجام می دهند؟ این به ما رقم آخر در کل تعداد. بنابراین به یاد داشته باشید که اگر ما تقسیم تعداد تا 10، پس از آن باقی مانده خواهد بود هر چه که رقمی گذشته است. 23 تقسیم بر 10، باقی مانده خواهد بود 3. بنابراین رقم آخر، در حال حاضر در اینجا، ما می بینیم ما در حال انشعاب در فتوکپی مهندسی 2. بنابراین چیزی که ما در حال رفتن به توان با استفاده از فتوکپی مهندسی 2 برای تمایز بین یکی از هر شماره "دیگر رقم "شماره دوم. فتوکپی مهندسی 2 است که برای شروع کردن به عنوان نادرست، از آخرین رقم باید نیست از در نظر گرفته دوم به آخرین رقمی. پس در پایان این حلقه، ما ببینید که ما در حال رفتن به تغییر این از نادرست به درست است. در تکرار بعدی از حلقه for، آن را در نظر گرفته درست تا در پایان، زمانی که تغییر ما آن درست از نادرست. از آنجا که پس از آن خواهیم در سوم می شود آخرین رقمی، که یکی از نه عددی که باید توسط 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 چاپ. اگر این مورد است، از ما ویزا را چاپ کنید. اگر این مورد دارد، ما چاپ کارت. اما اگر هیچ یک از آن نگه دارید، حتی اگر کنترلی معتبر بود، ما هنوز هم نامعتبر چاپ. از آنجا که آن را یکی از نه این نوع از کارت. نام من راب است، و من امیدوارم که شما جالب اعتباری یافت.