A new try today, with a different program. Still the same issue. Could someone give me test validator 2 in pm, because I don’t see how to do it better.
Thx
Send me your code instead, I’ll send back its error.
How should the overflow for incrementing LLL = 999 be handled?
The Output section of the puzzle statement says;
Note: The test cases do not address the issue of an identifier overflow at 999.
Does that answer your question?
No. I wonder how it’s handled beyond the test cases.
Can someone help with validator 6? No idea left, tried even checking if date not greater than today’s.
Validator 6 is similar to the “Rejected Identifier” test, where you have to perform the increment step. Maybe your code doesn’t handle that part correctly?
Wow, thank you. I used to store incremented value correctly, but for the remainer I thought “well it should only grow by 9” ![]()
According to the test cases, the incremented LLL value should just be forgotten after using it to calc the new check_digit. Do you mean the check_digit with “the remainer”?
I only fail Validator 6 but pass Test 6.
I think it is either timeout or my increment() is not good in all cases.
Please make Test 6 more similar to Validator 6!
void increment(char *num,const int len){
if(num[len-1]!='9'){
num[len-1]++;
}else{
for(int i=len-1;i>0;i--){
if(num[i-1]<'9'){
num[i]='0'; num[i-1]++;
break;
}
}
}
return;
}
Edit: The Problem was my increment function. 001–>002 but 199–>299 instead of 200.
I’m not sure what you mean by “forgetting the incremented LLL value”; you should provide an example. Also, you can look at the working of sample 2 in the statement. It shows that the incremented LLL value appears as part of the final social insurance number.
To clear it up for anyone suffering the same confusion as I, find the correct check digit for the original string first, if it is <10: print the original LLL with the new digit; else: find the next LLL with a valid check digit, print the new LLL and new digit