+ 2
Stuck on credit card validation problem
Wondering if someone could help me. I thought Iād solved the ācredit card validatorā problem, but my solution fails for two of the locked cases. I canāt for the life of me figure out what the problem is. Any suggestions would be appreciated. https://code.sololearn.com/c7M0qx84uCxz/?ref=app
4 Answers
+ 1
G'day JRS Nice code!
What debugging have you tried?
Have you got some test values that will give you not valid, eg less than 16 digits, more than 16 digits, only a 0, no input at all ..etc?
Have you got some test values that are valid? I think it is something to do with your handling of two digit results from the *2 process, but I'm not 100%. Let us know?
{Edit: you did realise that reversing the order is just a wild goose chase.... didn't you?}
EDIT2: I wonder if when you convert to char if the array gets a \0 (or a NULL, or however c# does it)?
+ 1
HungryTradie - Honestly, no, I didnāt even think about thatā¦but yeah, I now see that itās going to be the same result forward or backward because the even digits will still be the ones changed either way. I thought my problem might be that they threw in letters or something, which is why I added the TryParse, but that didnāt change anything. I will try working on the *2 part, though. Thanks for the suggestion.
+ 1
Reversing the array would change which digit needs to be multiplied. Every second when reversed is same as odd numbers when forwards. Eg skip original 16, 14, 12, etc but multiply original 1, 3, 5, etc.
(Hmm, did I get that right?? I think so...)
{EDIT: we also have to remember that arrays/(and pointers in C) start at 0 so digit 1 is arr[0]}
https://code.sololearn.com/c4UEaRJ2D9Mm/?ref=app
0
Solved it! The problem was two-fold. First, something was awry with my āreversalā of the digits. I never figured out what, but didnāt need toāI just doubled the odd digits instead of even ones. The second problem was when converting the char array to int array, I was trying to use the wrong functionāConvert.ToInt32 vs Char.GetNumericValue. Once I switched that, it worked. Thanks for your help, HungryTradie .