java - 奇数位数字之和

标签 java credit-card luhn

我试图通过这样做来对卡号中的所有其他数字求和:

/*
Return the sum of the odd-place digits.
*/

public static int sumOfoddPlace(long number)
{
    int maxDigitLength = 16;
    int sum = 0;
    for (int i = 1; i <= maxDigitLength; i++)
    {
        if (i % 2 == 1)
        {
            sum = sum + (int)(number % 10);
        }
        break;
    }
    return sum;
}

我得到的只是 6。我要查找的总和应该是 37。

最佳答案

您仅在第一次迭代时打破循环。因此,您不会再进行另一次迭代。

但是,删除 break 也无法解决您的问题。 number % 10 将始终为您提供号码的最后一位数字,而不是每个备用号码。您应该遵循以下方法:

  • num % 10 - 将为您提供最后一位数字。
  • 然后通过删除最后 2 位数字来更新 num
  • 重复

关于java - 奇数位数字之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19640762/

相关文章:

payment-gateway - 为什么使用明文作为信用卡安全码?

payment - 像FoodPanda这样的移动应用程序如何存储卡信息?

algorithm - 找不到数字校验算法

c - C语言新手;在 for 循环中使用 pow()

java - 如何在不同的 Android Studio 模块之间共享常量

java - 缩小 JSPX 页面中的 JavaScript 代码(在 Spring MVC Web 应用程序中)

android - 是否有适用于 iOS 和 Android 的使用信用卡在线购物的 API?

ruby-on-rails - Luhn算法Ruby无法识别AMEX

java - 从 JTable 读取输入

java - 字符串到字节的转换