📜  铱号

📅  最后修改于: 2021-04-23 17:32:58             🧑  作者: Mango

给定数字“ n”,请确定它是否是Disarium。如果数字的各自位置加总的数字之和等于数字本身,则该数字称为Disarium。

例子:

Input   : n = 135
Output  : Yes 
1^1 + 3^2 + 5^3 = 135
Therefore, 135 is a Disarium number

Input   : n = 89
Output  : Yes 
8^1+9^2 = 89
Therefore, 89 is a Disarium number

Input   : n = 80
Output  : No
8^1 + 0^2 = 8

这个想法是首先计算给定数字中的数字。计数后,我们从最右边开始遍历所有数字(使用%运算符),提高其对数字计数的能力并减少数字计数。

以下是上述想法的实现。

C++
// C++ program to check whether a number is Desoriam
// or not
#include
using namespace std;
  
// Finds count of digits in n
int countDigits(int n)
{
    int count_digits = 0;
  
    // Count number of digits in n
    int x = n;
    while (x)
    {
        x = x/10;
  
        // Count the no. of digits
        count_digits++;
    }
    return count_digits;
}
  
// Function to check whether a number is disarium or not
bool check(int n)
{
    // Count digits in n.
    int count_digits = countDigits(n);
  
    // Compute sum of terms like digit multiplied by
    // power of position
    int sum = 0; // Initialize sum of terms
    int x = n;
    while (x)
    {
        // Get the rightmost digit
        int r = x%10;
  
        // Sum the digits by powering according to
        // the positions
        sum = sum + pow(r, count_digits--);
        x = x/10;
    }
  
    // If sum is same as number, then number is
    return (sum == n);
}
  
//Driver code to check if number is disarium or not
int main()
{
    int n = 135;
    if( check(n))
        cout << "Disarium Number";
    else
        cout << "Not a Disarium Number";
    return 0;
}


Java
// Java program to check whether a number is Desoriam
// or not
  
class Test
{
    // Method to check whether a number is disarium or not
    static boolean check(int n)
    {
        // Count digits in n.
        int count_digits = Integer.toString(n).length();
       
        // Compute sum of terms like digit multiplied by
        // power of position
        int sum = 0; // Initialize sum of terms
        int x = n;
        while (x!=0)
        {
            // Get the rightmost digit
            int r = x%10;
       
            // Sum the digits by powering according to
            // the positions
            sum = (int) (sum + Math.pow(r, count_digits--));
            x = x/10;
        }
       
        // If sum is same as number, then number is
        return (sum == n);
    }
      
    // Driver method
    public static void main(String[] args) 
    {
        int n = 135;
          
        System.out.println(check(n) ? "Disarium Number" : "Not a Disarium Number");
    }
}


Python
# Python program to check whether a number is Desarium
# or not
import math 
  
# Method to check whether a number is disarium or not
def check(n) :
  
    # Count digits in n.
    count_digits = len(str(n))
       
    # Compute sum of terms like digit multiplied by
    # power of position
    sum = 0  # Initialize sum of terms
    x = n
    while (x!=0) :
  
        # Get the rightmost digit
        r = x % 10
           
        # Sum the digits by powering according to
        # the positions
        sum = (int) (sum + math.pow(r, count_digits))
        count_digits = count_digits - 1
        x = x/10
         
    # If sum is same as number, then number is
    if sum == n :
        return 1
    else :
        return 0
        
# Driver method
n = 135
if (check(n) == 1) :
    print "Disarium Number"
else :
    print "Not a Disarium Number"
   
# This code is contributed by Nikita Tiwari.


C#
// C# program to check whether a number
// is Desoriam or not
using System;
  
class GFG{
      
// Method to check whether a number
// is disarium or not
static bool check(int n)
{
      
    // Count digits in n.
    int count_digits = n.ToString().Length;
   
    // Compute sum of terms like digit 
    // multiplied by power of position
    // Initialize sum of terms
    int sum = 0; 
    int x = n;
      
    while (x != 0)
    {
          
        // Get the rightmost digit
        int r = x % 10;
   
        // Sum the digits by powering according
        // to the positions
        sum = (int)(sum + Math.Pow(
              r, count_digits--));
        x = x / 10;
    }
   
    // If sum is same as number, 
    // then number is
    return (sum == n);
}
  
// Driver code
public static void Main(string[] args) 
{
    int n = 135;
      
    Console.Write(check(n) ? "Disarium Number" :
                       "Not a Disarium Number");
}
}
  
// This code is contributed by rutvik_56


输出:

Disarium Number