The dice problem - GeeksforGeeks

The dice problem

Last Updated : 23 Oct, 2026

Given an integer n representing a face of a standard six-faced dice, find the number on the opposite face. The faces of the dice are numbered from 1 to 6.

Examples:

Input: n = 2
Output: 5
Explanation: For dice facing number 5 opposite face will have the number 2.

Input: n = 6
Output: 1
Explanation: For dice facing number 6 opposite face will have the number 1.

Try It Yourself
redirect icon

[Naive Approach] if-else Statement - O(1) Time and O(1) Space

In a normal 6-faced dice, 1 is opposite to 6, 2 is opposite to 5, and 3 is opposite to 4. Hence a normal if-else-if block can be placedĀ .

C++
#include <iostream>
using namespace std;

int oppositeFaceOfDice(int n) {
  int ans;
  if(n==1) {
    ans = 6;
  }else if(n == 2) {
    ans = 5;
  } else if(n == 3) {
    ans = 4;
  } else if( n==4 ) {
    ans = 3;
  } else if( n==5 ){
    ans = 2;
  } else {
    ans = 1;
  }
  return ans; 
}

int main() {
    int n = 2;
    cout << oppositeFaceOfDice(n);
    return 0;
}
C
#include <stdio.h>

int oppositeFaceOfDice(int n) {
    int ans;
    if (n == 1) {
        ans = 6;
    }
    else if (n == 2) {
        ans = 5;
    }
    else if (n == 3) {
        ans = 4;
    }
    else if (n == 4) {
        ans = 3;
    }
    else if (n == 5) {
        ans = 2;
    }
    else {
        ans = 1;
    }
    return ans;
}

int main() {
    int n = 2;
    printf("%d", oppositeFaceOfDice(n));
    return 0;
}
Java
public class GFG {
    public static int oppositeFaceOfDice(int n) {
        int ans;
        if (n == 1) {
            ans = 6;
        }
        else if (n == 2) {
            ans = 5;
        }
        else if (n == 3) {
            ans = 4;
        }
        else if (n == 4) {
            ans = 3;
        }
        else if (n == 5) {
            ans = 2;
        }
        else {
            ans = 1;
        }
        return ans;
    }

    public static void main(String[] args) {
        int n = 2;
        System.out.println(oppositeFaceOfDice(n));
    }
}
Python
def oppositeFaceOfDice(n):
    if n == 1:
        return 6
    elif n == 2:
        return 5
    elif n == 3:
        return 4
    elif n == 4:
        return 3
    elif n == 5:
        return 2
    else:
        return 1

if __name__ == "__main__": 
    n = 2
    print(oppositeFaceOfDice(n))
C#
using System;

class GFG {
    static int oppositeFaceOfDice(int n) {
        int ans;
        if(n==1){
            ans=6;
        }else if(n==2){
            ans=5;
        }else if(n==3){
            ans=4;
        }else if(n==4){
            ans=3;
        }else if(n==5){
            ans=2;
        }else{
            ans=1;
        }
        return ans;
    }

    static void Main() {
        int n = 2;
        Console.WriteLine(oppositeFaceOfDice(n));
    }
}
JavaScript
function oppositeFaceOfDice(n) {
    let ans;
    if(n === 1) {
        ans = 6;
    } else if(n === 2) {
        ans = 5;
    } else if(n === 3) {
        ans = 4;
    } else if(n === 4) {
        ans = 3;
    } else if(n === 5) {
        ans = 2;
    } else {
        ans = 1;
    }
    return ans;
}

// Driver code 
let n = 2;
console.log(oppositeFaceOfDice(n));

Output
5

[Expected Approach] Sum of Two Sides - O(1) Time and O(1) Space

Based on the observation that the sum of two opposite sides of a cubical dice is equal to 7. So, just subtract the given n from 7 and print the answer.

C++
#include<iostream>
using namespace std;

int oppositeFaceOfDice(int n) {
  
    // Stores number on opposite face
    // of dice
    int ans = 7 - n;
    return ans;
}

int main() {
  
    int n = 2;
    cout << oppositeFaceOfDice(n);

    return 0;
}
C
#include <stdio.h>

int oppositeFaceOfDice(int n) {
    
    // Stores number on opposite face
    // of dice
    int ans = 7 - n;
    return ans;
}

int main() {
    int n = 2;
    printf("%d", oppositeFaceOfDice(n));
    return 0;
}
Java
public class GFG {
    public static int oppositeFaceOfDice(int n) {
        
        // Stores number on opposite face
        // of dice
        int ans = 7 - n;
        return ans;
    }

    public static void main(String[] args) {
        int n = 2;
        System.out.println(oppositeFaceOfDice(n));
    }
}
Python
def oppositeFaceOfDice(n):
    
    # Stores number on opposite face
    # of dice
    ans = 7 - n
    return ans

n = 2
print(oppositeFaceOfDice(n))
C#
using System;

class GFG {
    public static int oppositeFaceOfDice(int n) {
        
        // Stores number on opposite face
        // of dice
        int ans = 7 - n;
        return ans;
    }

    static void Main() {
        int n = 2;
        Console.WriteLine(oppositeFaceOfDice(n));
    }
}
JavaScript
function oppositeFaceOfDice(n) {
    // Stores number on opposite face
    // of dice
    let ans = 7 - n;
    return ans;
}

let n = 2;
console.log(oppositeFaceOfDice(n));

Output
5
Comment