>> 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。
如果这种情况成立，我们将打印签证。
如果这种情况成立，我们将 打印万事达卡。
>> 但是，如果这些都不抱，甚至 如果校验是有效的，
我们还是打印无效。
因为它不是一个 这些类型的卡。
我的名字是罗布，我希望你 发现信用有趣。