65,186
社区成员




#include <iostream>
#include <string>
using namespace std;
int sumOfOddPlace(const string& cardNumber)
{
int sum=0;
for(int i=cardNumber.size()-1,j=0;i>=0;i--){
if(++j%2==1) //奇位数
sum+=cardNumber.at(i)-'0';
}
return sum;
}
int getDigit(int number)
{
int sum=0;
while(sum+=number%10,number)number/=10;
return sum;
}
int sumOfDoublePlace(const string& cardNumber)
{
int sum=0;
for(int i=cardNumber.size()-1,j=0;i>=0;i--){
if(++j%2==0) //偶位数
sum+=getDigit((cardNumber.at(i)-'0')*2);
}
return sum;
}
bool startsWith(const string& cardNumber)
{
if(cardNumber.size()>=13 && cardNumber.size()<=16)
if(cardNumber.at(0)=='4'||cardNumber.at(0)=='5'||
cardNumber.at(0)=='6'||(cardNumber.at(0)=='3'&&cardNumber.at(1)=='7'))
return true;
return false;
}
bool isValid(const string& cardNumber)
{
if(startsWith(cardNumber))
if((sumOfDoublePlace(cardNumber)+sumOfOddPlace(cardNumber))%10==0)
return true;
return false;
}
int main()
{
string str;
cin>>str;
if(isValid(str))
cout<<"Is Valid card!"<<endl;
else
cout<<"Is Invalid card!"<<endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int sumOfOddPlace(const string& cardNumber)
{
int sum=0;
for(int i=cardNumber.size()-1,j=0;i>=0;i--){
if(++j%2==1) //奇数位
sum+=cardNumber.at(i)-'0';
}
return sum;
}
int getDigit(int number)
{
int sum=0;
while(sum+=number%10,number)number/=10;
return sum;
}
int sumOfDoublePlace(const string& cardNumber)
{
int sum=0;
for(int i=cardNumber.size()-1,j=0;i>=0;i--){
if(++j%2==0) //偶数位
sum+=getDigit((cardNumber.at(i)-'0')*2);
}
return sum;
}
bool startsWith(const string& cardNumber)
{
if(cardNumber.size()>=13 && cardNumber.size()<=16)
if(cardNumber.at(0)=='4'||cardNumber.at(0)=='5'||
cardNumber.at(0)=='6'||(cardNumber.at(0)=='3'&&cardNumber.at(1)=='7'))
return true;
else
return false;
else
return false;
}
bool isValid(const string& cardNumber)
{
if(startsWith(cardNumber))
if((sumOfDoublePlace(cardNumber)+sumOfOddPlace(cardNumber))%10==0)
return true;
else
return false;
else
return false;
}
int main()
{
string str;
cin>>str;
if(isValid(str))
cout<<"Is Valid card!"<<endl;
else
cout<<"Is Invalid card!"<<endl;
return 0;
}