Program to print reciprocal of letters (original) (raw)

Last Updated : 11 Jul, 2025

Given a string S, we need to find reciprocal of it. The reciprocal of the letter is found by finding the difference between the position of the letter and first letter 'A'. Then moving the same number of steps from letter 'Z'. The character that we reach after above steps is reciprocal.
Reciprocal of Z is A and vice versa because if you reverse the position of the alphabet A will be in the position of Z.
Similarly, T is the reciprocal of G, J is the reciprocal of Q.

**Examples :

**Input : PRAKHAR
**Output : KIZPSZI

**Input : VARUN
**Output : EZIFM

Just use a mathematical formula which gives the reciprocal of each character

Reciprocal(x) = ASCII('Z') - ASCII(x) + ASCII('A')
The ASCII value of Z and A will change according
to the uppercase and lowercase.

**Implementation:

C++ `

// CPP program to find Reciprocal string #include <bits/stdc++.h> using namespace std;

// To print reciprocal string void reciprcalString(string word) { char ch; for (int i = 0; i < word.length(); i++) { // converting uppercase character // To reciprocal character // display the character if (isupper(word[i])) { ch = 'Z' - word[i] + 'A'; cout << ch; }

    // converting lowercase character
    // To reciprocal character
    // display the character
    else if (islower(word[i])) {
        ch = 'z' - word[i] + 'a';
        cout << ch;
    }

    else {
        cout << word[i];
    }
}

}

// Driver function int main() { string s = "Geeks for Geeks"; cout << "The reciprocal of " << s << " is - " << endl; reciprcalString(s); return 0; }

Java

// JAVA program to illustrate... // Reciprocal Letters import java.io.; import java.math.; import java.text.; import java.util.; import java.util.regex.*;

public class GFG {

// function to print
// the reciprocal
static void Reciprcalstring(String word)
{
    char ch;
    for (int i = 0; i < word.length(); i++) {
        ch = word.charAt(i);

        // Checking if the character
        // is a letter or not
        if (Character.isLetter(ch)) {

            // converting lowercase character
            // To reciprocal character
            if (Character.isLowerCase(ch)) {
                ch = (char)(122 - (int)(ch) + 97);
            }
            // converting uppercase character
            // To reciprocal character
            else if (Character.isUpperCase(ch)) {
                ch = (char)(90 - (int)(ch) + 65);
            }
        }

        // display each character
        System.out.print(ch);
    }
}

// Driver function
public static void main(String[] args)
{
    // static input
    String s = "Geeks for Geeks";
    System.out.print("The reciprocal of " + s + " is - "
                     + "\n");

    // calling the function
    Reciprcalstring(s);
}

}

Python3

Python3 program to find Reciprocal string

to check for UPPERCASE

def isupper(ch): if ch >= 'A' and ch <= 'Z': return True return False

to check for LOWERCASE

def islower(ch): if ch >= 'a' and ch <= 'z': return True return False

To print reciprocal string

def reciprocalString(word): ch = '' for i in range(len(word)):

    # converting uppercase character
    # To reciprocal character
    # display the character
    if isupper(word[i]):
        ch = chr(ord('Z') - 
                 ord(word[i]) + ord('A'))
        print(ch, end = "")

    # converting lowercase character
    # To reciprocal character
    # display the character
    elif islower(word[i]):
        ch = chr(ord('z') - 
                 ord(word[i]) + ord('a'))
        print(ch, end = "")
    else:
        print(word[i], end = "")

Driver Code

if name == "main": s = "Geeks for Geeks" print("The reciprocal of", s, "is - ") reciprocalString(s)

This code is contributed by

sanjeev2552

C#

// C# program to find Reciprocal string using System;

class GFG {

// function to print the reciprocal
static void Reciprcalstring(string word)
{
    char ch;
    for (int i = 0; i < word.Length; i++) {
        ch = word[i];

        // Checking if the character
        // is a letter or not
        if (Char.IsLetter(ch) && ch < 128) {

            // converting lowercase character
            // To reciprocal character
            if (char.IsLower(ch)) {
                ch = (char)(122 - (int)(ch) + 97);
            }
            
            // converting uppercase character
            // To reciprocal character
            else if (char.IsUpper(ch)) {
                ch = (char)(90 - (int)(ch) + 65);
            }
        }

        // display each character
        Console.Write(ch);
    }
}

// Driver function
public static void Main()
{
    string s = "Geeks for Geeks";
    Console.Write("The reciprocal of " + s +
                           " is - " + "\n");

    // calling the function
    Reciprcalstring(s);
}

}

// This code is contributed by Sam007

JavaScript

PHP

i<strlen(i < strlen(i<strlen(word); $i++) { ch=ch = ch=word[$i]; // Check if space, // then print it if($ch == ' ') echo ($ch); // converting lowercase character // To reciprocal character else if (check_lowercase_string($ch)) { $ch = chr(122 - ord($ch) + 97); } // converting uppercase character // To reciprocal character else if (check_uppercase_string($ch)) { $ch = chr(90 - ord($ch) + 65); } // display each // character echo ($ch); } } // Driver Code $s = "Geeks for Geeks"; echo ("The reciprocal of ". $s. " is - ". "\n"); // calling the function Reciprcalstring($s); // This code is contributed by // Manish Shaw(manishshaw1) ?>

`

Output

The reciprocal of Geeks for Geeks is - Tvvph uli Tvvph

**Time Complexity: O(n), where n is the length of the string.
**Auxiliary Space: O(1)