2544. Alternating Digit Sum

You are given a positive integer n. Each digit of n has a sign according to the following rules:

  • The most significant digit is assigned a positive sign.
  • Each other digit has an opposite sign to its adjacent digits.

Return the sum of all digits with their corresponding sign.

Example 1:

Input: n = 521 Output: 4 Explanation: (+5) + (-2) + (+1) = 4.

Example 2:

Input: n = 111 Output: 1 Explanation: (+1) + (-1) + (+1) = 1.

Example 3:

Input: n = 886996 Output: 0 Explanation: (+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0.

Constraints:

  • 1 <= n <= 109
int main(){
	int n = 521;
        int place = log10(n); // Finds the maximum-th place
        int sum = 0;
        for (int i = 0; i <= place; i++){ // Iterates over each place
            int pos = place - i; // The place is from largest to smallest
            int dig = n/pow(10,pos); // Removes the numbers upto that place
            (i+1) % 2 == 0 ? dig = -(dig%10) : dig = dig%10; // Grabs the last digit with + or - sign depending on the iteration
            sum = sum + dig; // Sums it up!
        };
        cout << sum;
	return 0; 
}