How to write 6 different functions that accept 5 or 7 and return the other number, without using if,switch in C#

1 Answer

0 votes
using System;

class FlipNumbers
{
    /*
        Six different functions that accept 5 or 7
        and return the other number, without using if/switch.
    */

    // 1. Arithmetic sum trick: 5 + 7 = 12
    static int FlipSum(int x) {
        return 12 - x;
    }

    // 2. Product trick: 5 * 7 = 35
    static int FlipProduct(int x) {
        return 35 / x;
    }

    // 3. XOR trick: 5 ^ 7 = 2
    //    x ^ 2 flips 5 ↔ 7
    static int FlipXor(int x) {
        return x ^ 2;
    }

    // 4. Modulo-based trick using divisibility:
    //    x % 7 == 0 → x is 7
    //    x % 5 == 0 → x is 5
    //    Boolean → int via Convert.ToInt32()
    static int FlipMod(int x) {
        return 5 * Convert.ToInt32(x % 7 == 0)
             + 7 * Convert.ToInt32(x % 5 == 0);
    }

    // 5. Absolute-value trick: |x - 12| flips 5 ↔ 7
    static int FlipAbs(int x) {
        return Math.Abs(x - 12);
    }

    // 6. Array lookup using arithmetic index:
    //    For x = 5 → (5 - 5) / 2 = 0 → table[0] = 7
    //    For x = 7 → (7 - 5) / 2 = 1 → table[1] = 5
    static int FlipArray(int x) {
        int[] table = { 7, 5 };
        int index = (x - 5) / 2;
        return table[index];
    }

    static void Main()
    {
        Console.WriteLine("flip_sum(5) = " + FlipSum(5));
        Console.WriteLine("flip_sum(7) = " + FlipSum(7));
        Console.WriteLine();

        Console.WriteLine("flip_product(5) = " + FlipProduct(5));
        Console.WriteLine("flip_product(7) = " + FlipProduct(7));
        Console.WriteLine();

        Console.WriteLine("flip_xor(5) = " + FlipXor(5));
        Console.WriteLine("flip_xor(7) = " + FlipXor(7));
        Console.WriteLine();

        Console.WriteLine("flip_mod(5) = " + FlipMod(5));
        Console.WriteLine("flip_mod(7) = " + FlipMod(7));
        Console.WriteLine();

        Console.WriteLine("flip_abs(5) = " + FlipAbs(5));
        Console.WriteLine("flip_abs(7) = " + FlipAbs(7));
        Console.WriteLine();

        Console.WriteLine("flip_array(5) = " + FlipArray(5));
        Console.WriteLine("flip_array(7) = " + FlipArray(7));
    }
}



/*
OUTPUT:

flip_sum(5) = 7
flip_sum(7) = 5

flip_product(5) = 7
flip_product(7) = 5

flip_xor(5) = 7
flip_xor(7) = 5

flip_mod(5) = 7
flip_mod(7) = 5

flip_abs(5) = 7
flip_abs(7) = 5

flip_array(5) = 7
flip_array(7) = 5

*/

 



answered Mar 31 by avibootz

Related questions

...