Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- int addAllDigits(char digits[], int doubleTheDigit) {
- int length = sizeof(digits)/sizeof(digits[0]);
- int finalSum = 0;
- for(int i = 0; i < length; i++) {
- int digit;
- if(doubleTheDigit == 1) {
- digit = (digits[i] - '0')*2;
- } else {
- digit = digits[i] - '0';
- }
- if(digit >= 10) {
- digit = digit/10 + digit%10;
- }
- finalSum += digit;
- }
- return finalSum;
- }
- int main() {
- char cardNumber[] = "4003600000000014";
- int length = strlen(cardNumber);
- char digits2double[20];
- int digitIndex = 0;
- for(int cardIndex = length-2; cardIndex >= 0; cardIndex -= 2) {
- digits2double[digitIndex] = cardNumber[cardIndex];
- digitIndex++;
- }
- int doubledSum = addAllDigits(digits2double, 1);
- char digits[20];
- digitIndex = 0;
- for(int cardIndex = length-1; cardIndex >= 0; cardIndex -= 2) {
- digits[digitIndex] = cardNumber[cardIndex];
- digitIndex++;
- }
- int sum = addAllDigits(digits, 0);
- printf("--> %d + %d = %d\n", doubledSum, sum, doubledSum + sum);
- }
Advertisement
Add Comment
Please, Sign In to add comment