📜  检查数字是否为神秘数字

📅  最后修改于: 2021-05-04 18:00:30             🧑  作者: Mango

给定一个数字,检查它是否是一个神秘数字。一个神秘数字是可以表示为两个数字之和的数字,而这两个数字应彼此相反。

例子:

来源:Paytm访谈集23

这个想法是尝试每一个小于或等于n的可能对。

下面是上述方法的实现。

C++
// C++ implementation of above approach
#include 
using namespace std;
  
// Finds reverse of given num x.
int reverseNum(int x) 
{
    string s = to_string(x);
    reverse(s.begin(), s.end());
    stringstream ss(s); 
    int rev = 0; 
    ss >> rev;
    return rev; 
}
  
bool isMysteryNumber(int n)
{
    for (int i=1; i <= n/2; i++) 
    {
        // if found print the  pair, return 
        int j = reverseNum(i);
        if (i + j == n) 
        {
            cout << i << " " << j; 
            return true;
        }
    }
  
    cout << "Not a Mystery Number";
    return false;
}
  
int main()
{
    int n = 121;
    isMysteryNumber(n);
    return 0;
}


Java
// Java implementation of above approach
  
class GFG
{
    // Finds reverse of given num x.
    static int reverseNum(int x) 
    {
        String s = Integer.toString(x);
        String str="";
        for(int i=s.length()-1;i>=0;i--)
        {
              
            str=str+s.charAt(i);
        }
          
        int rev=Integer.parseInt(str);
        return rev; 
    }
      
    static boolean isMysteryNumber(int n)
    {
        for (int i=1; i <= n/2; i++) 
        {
            // if found print the pair, return 
            int j = reverseNum(i);
            if (i + j == n) 
            {
                System.out.println( i + " " + j); 
                return true;
            }
        }
      
         System.out.println("Not a Mystery Number");
        return false;
    }
      
    public static void main(String []args)
    {
        int n = 121;
        isMysteryNumber(n);
      
    }
  
}
  
// This code is contributed by ihritik


Python3
# Python3 implementation of above approach
  
# Finds reverse of given num x.
def reverseNum(x):
    s = str(x)
    s = s[::-1]
    return int(s)
      
def isMysteryNumber(n):
      
    for i in range(1, n // 2 + 1):
          
        # if found print the pair, return
        j = reverseNum(i)
          
        if i + j == n:
            print(i, j)
            return True
      
    print("Not a Mystery Number")
    return False
  
# Driver Code
n = 121
isMysteryNumber(n)
  
# This code is contributed by 
# Mohit Kumar 29 (IIIT gwalior)


C#
// C# implementation of above approach
  
using System;
class GFG
{
    // Finds reverse of given num x.
    static int reverseNum(int x) 
    {
        string s = x.ToString();
        string str="";
        for(int i=s.Length-1;i>=0;i--)
        {
              
            str=str+s[i];
        }
          
        int rev=Int32.Parse(str);
        return rev; 
    }
      
    static bool isMysteryNumber(int n)
    {
        for (int i=1; i <= n/2; i++) 
        {
            // if found print the pair, return 
            int j = reverseNum(i);
            if (i + j == n) 
            {
                Console.WriteLine( i + " " + j); 
                return true;
            }
        }
      
        Console.WriteLine("Not a Mystery Number");
        return false;
    }
      
    public static void Main()
    {
        int n = 121;
        isMysteryNumber(n);
      
    }
  
}
  
// This code is contributed by ihritik


PHP


输出:
29 92