>> ROB BOWDEN：嗨，我是羅布。
我希望你負責 了信貸。
我們必須這樣做第一件事 被要求信用卡
從用戶數。
在這裡，我們使用getLongLong。
你可能也使用的getString，但 在這種情況下，你需要檢查
有沒有非數字 字符的字符串。
因此，我們將使用getLongLong。
>> 請記住，你不能使用的東西 像調用getInt，由於數量將
太大，不適合在一個整數。
一旦我們有了這個數字，我們 在這裡看到的這個while循環。
所以這個while循環執行 LUHN的算法，你
看到PSET規範。
>> 它實際上會 是有點聰明。
所以在PSET規範，請注意 步驟一，二是分開的。
我們首先去了整個信用卡 數，尋找一切其他
字符從第二到開始 最後一個字符，再乘以他們
並且將所有的數字。
那麼在這之後，我們在添加 所有的其他數字。
>> 因此，而不是做那些兩 獨立的步驟，我們要結合
他們為一個迭代過 完整的信用卡號碼。
在這裡，我們看到的值。int cur位等於 信用卡號碼，模10。
什麼是信用卡號碼 國防部10在做什麼？
它給我們的最後一個數字 在整個號碼。
所以請記住，如果我們分了 由10個數字了，那麼剩下的
會是什麼那最後一個數字是。
23除以10，則 剩下的將是3。
>> 所以，最後一個數字，現在在這裡，我們看到 我們通過2分支上多個。
因此，我們將要使用多個哪些 2用的區分
“每隔一個數字從一個 第二個數字“的數字。
多個由2即將開始作為 假的，因為最後一位數字不應該
被從所考慮的 倒數第二位。
>> 所以後來在本月底for循環，我們 看到我們要改變這種
從假到真。
在fo​​r循環的下一次迭代， 它要考慮到真
最後，當我們改變 它真亦假。
因為那時我們將在第三至 最後的數字，這不是一個
數字，我們應該乘以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的算法，它只是
添加位，如果它不發生 為每一個其它數字的之一。
所以一旦我們有，這是保持 賽道的前兩個字符
信用卡號碼，第2 數字，因為我們最終將
想要使用該到這裡來驗證， 沒事，簽證已經開始
與此，與美國運通需要 開始與此，依此類推。
>> 最後，我們做信用卡 數等於信用卡
除10號。
我們為什麼這樣做呢？
好了，我們只是處理的最後一個數字。
除以10將轉向 整個數過來。
所以，現在當我們回圈，我們 將要處理的
倒數第二位。
然後，當我們打這個再次，我們要 切斷倒數第二
位，環回，並辦理第三 到最後一位，依此類推，直到
數達到0，在該點 我們跳出while循環。
>> 我們還跟踪的功勞 卡號長度，因為這是
重要的是要區分是否是 一個有效的信用卡號碼。
所以，現在，一旦我們計算了 校驗和，我們就可以判斷它是否
是一個有效的卡。
校驗模10是一部分 的LUHN的算法。
如果校驗和國防部10返回的東西 不為零，那麼這將返回true，
在這種情況下，數 必須是無效的。
>> 否則，如果校驗模10 是0，那麼我們就可以繼續下去。
這個大東西，如果是說，如果第一個 兩個數字都等於AMEX 1，
其中在這裡，我們看到，美國證券交易所 1，按照該規範，是34。
我們也將比較它 到AMEX 2，這是37。
和信用卡號碼的長度是 等於預期美國運通
卡的長度，那麼我們就可以 打印美國運通。
>> 我們會做類似的事情與Visa。
前兩個數字需要更大 大於或等於40，或更
大於或等於49。
這些代表有效的Visa卡。
和長度需要等於 簽證長度1或Visa長度2。
等的長度必須是 13或16位長。
>> 最後用萬事達卡，它的 類似簽證，即前兩個
數字必須是在一定的 範圍，並且長度必須
正好是16位數字。
因此，如果任何這些情況下按住，然後在 第一種情況下，我們將打印AMEX。
如果這種情況成立，我們將打印簽證。
如果這種情況成立，我們將 打印萬事達卡。
>> 但是，如果這些都不抱，甚至 如果校驗是有效的，
我們還是打印無效。
因為它不是一個 這些類型的卡。
我的名字是羅布，我希望你 發現信用有趣。