给定数字“ 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