溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

c#如何實(shí)現(xiàn)信用卡號(hào)的驗(yàn)證

發(fā)布時(shí)間:2022-01-15 14:14:47 來源:億速云 閱讀:148 作者:小新 欄目:編程語言

小編給大家分享一下c#如何實(shí)現(xiàn)信用卡號(hào)的驗(yàn)證,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

【信用卡號(hào)的驗(yàn)證】

當(dāng)你輸入信用卡號(hào)碼的時(shí)候,有沒有擔(dān)心輸錯(cuò)了而造成損失呢?其實(shí)可以不必這么擔(dān)心,
因?yàn)椴⒉皇且粋€(gè)隨便的信用卡號(hào)碼都是合法的,它必須通過Luhn算法來驗(yàn)證通過。
該校驗(yàn)的過程:
1、從卡號(hào)最后一位數(shù)字開始,逆向?qū)⑵鏀?shù)位(1、3、5等等)相加。
2、從卡號(hào)最后一位數(shù)字開始,逆向?qū)⑴紨?shù)位數(shù)字,先乘以2(如果乘積為兩位數(shù),則將其減去9),再求和。
3、將奇數(shù)位總和加上偶數(shù)位總和,結(jié)果應(yīng)該可以被10整除。
例如,卡號(hào)是:5432123456788881

則,奇數(shù)位和=35
偶數(shù)位乘以2(有些要減去9)的結(jié)果:1 6 2 6 1 5 7 7,求和=35。
最后35+35=70 可以被10整除,認(rèn)定校驗(yàn)通過。

請編寫一個(gè)程序,從鍵盤輸入卡號(hào),然后判斷是否校驗(yàn)通過。通過顯示:“成功”,否則顯示“失敗”。
比如,用戶輸入:356827027232780
程序輸出:成功

【參考測試用例】
356406010024817     成功
358973017867744     成功
356827027232781     失敗
306406010024817     失敗
358973017867754     失敗
因?yàn)檩斎霑r(shí)候數(shù)據(jù)中間無空格。所以用字符串。
#include<stdio.h>
main()
{
char a[16]={0};
int sum1,sum2,temp;
for(int j=0;j<1000;j++)
{
sum1=0;
sum2=0;
scanf("%s",a);
for(int i=14;i>=0;i-=2)
{
sum1+=(a[i]-'0');
}
for(int i=13;i>0;i-=2)
{
temp=2*(a[i]-'0');
if(temp>=10)
{
temp-=9;
sum2+=temp;
}
else
{
sum2+=temp;
}
}
if((sum1+sum2)%10==0)
{
printf("成功\n");
}
else
{
printf("失敗\n");
}
}
return 0;
}

以上是“c#如何實(shí)現(xiàn)信用卡號(hào)的驗(yàn)證”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI