📌  相关文章
📜  检查数字和的乘积是否等于数字

📅  最后修改于: 2022-05-13 01:57:58.744000             🧑  作者: Mango

检查数字和的乘积是否等于数字

给定一个数字,检查数字和的乘积和数字和的倒数是否等于该数字。
例子:

Input : 1729
Output : Yes
Explanation: 
digit sum = 1 + 7 + 2 + 9
          = 19
Reverse of digit sum = 91
Product = digit sum * Reverse of digit sum
        = 19 * 91
        = 1729

Input : 2334
Output : No

流程图:

方法 :
1. 求给定数的位数之和。
2. 反转数字和输出。
3. 数字和的乘积和数字和的逆。
如果产品等于原始数量,则打印“是”,否则打印“否”。

C++
// CPP implementation to check if the
// product of digit sum and its
// reverse equals the number or not
#include
using namespace std;
 
// Function that returns number after
// performing operations.
int check(int num)
{
    int digitSum = 0;
     
    // loop used to count digit sum
    // of numbers.
    while(num > 0)
    {
        digitSum = digitSum + num % 10;
        num = num / 10;
    }
    int temp = digitSum;
    int reverseDigitSum = 0;
     
    // loop that reverse digit sum.
    while(temp > 0)
    {
        int rem = temp % 10;
        reverseDigitSum = reverseDigitSum * 10
                        + rem;
        temp = temp / 10;
    }
     
    // product of digit sum and reverse digit
    // sum and assign it to number variables.
    int number = digitSum * reverseDigitSum;
    return number;
}
 
// Driver function
int main()
{
    int num = 1729;
 
    // call check() function.
    int x = check(num);
 
    // check if original number equals
    // to x or not
    if (num == x)
        cout << "Yes";
    else
        cout << "No";
    return 0;
}


Java
// JAVA implementation to check if the
// product of digit sum and its
// reverse equals the number or not
class GFG {
      
    // Function that returns number after
    // performing operations.
    static int check(int num)
    {
        int digitSum = 0;
          
        // loop used to count digit sum
        // of numbers.
        while(num > 0)
        {
            digitSum = digitSum + num % 10;
            num = num / 10;
        }
        int temp = digitSum;
        int reverseDigitSum = 0;
          
        // loop that reverse digit sum.
        while(temp > 0)
        {
            int rem = temp % 10;
            reverseDigitSum = reverseDigitSum * 10
                            + rem;
            temp = temp / 10;
        }
          
        // product of digit sum and reverse digit
        // sum and assign it to number variables.
        int number = digitSum * reverseDigitSum;
        return number;
    }
      
    // Driver function
    public static void main(String args[])
    {
        int num = 1729;
      
        // call check() function.
        int x = check(num);
      
        // check if original number equals
        // to x or not
        if (num == x)
            System.out.println("Yes");
        else
           System.out.println("No");
    }
}
 
// This code is contributed by Nikita Tiwari


Python3
# Python implementation to check if the
# product of digit sum and its
# reverse equals the number or not
 
 
# Function that returns number after
# performing operations.
def check(num) :
    digitSum = 0
     
    # loop used to count digit sum
    # of numbers.
    while(num != 0) :
        digitSum = digitSum + num % 10
        num = num // 10
     
    temp = (int)(digitSum)
    reverseDigitSum = 0
           
    # loop that reverse digit sum.
    while(temp != 0) :
        rem = temp % 10
        reverseDigitSum = reverseDigitSum * 10 + rem
        temp = temp / 10
             
    # product of digit sum and reverse digit
    # sum and assign it to number variables.
    number = digitSum * reverseDigitSum
    return number
     
# Driver function
num = 1729
 
# call check() function.
x = (check(num))
 
# check if original number 
# equals to x or not
if (num == x) :
    print("Yes")
else :
    print("No")
     
     
# This code is contributed by Nikita Tiwari.


C#
// Code to check if the product
// of digit sum and its reverse
// equals the number or not
using System;
 
class GFG {
 
    // Function that returns number
    // after performing operations.
    static int check(int num)
    {
        int digitSum = 0;
 
        // loop used to count digit
        // sum of numbers.
        while (num > 0) {
            digitSum = digitSum + num % 10;
            num = num / 10;
        }
 
        int temp = digitSum;
        int reverseDigitSum = 0;
 
        // loop that reverse digit sum.
        while (temp > 0) {
            int rem = temp % 10;
            reverseDigitSum = reverseDigitSum * 10
                              + rem;
            temp = temp / 10;
        }
 
        // product of digit sum and
        // reverse digit sum, assign
        // it to number variables.
        int number = digitSum * reverseDigitSum;
        return number;
    }
 
    // Driver function
    public static void Main()
    {
        int num = 1729;
 
        // call check() function.
        int x = check(num);
 
        // check if original number
        // equals to x or not
        if (num == x)
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code is contributed by Anant Agarwal.


PHP
 0)
    {
        $digitSum = $digitSum +
                    $num % 10;
        $num = (int)($num / 10);
    }
    $temp = $digitSum;
    $reverseDigitSum = 0;
     
    // loop that reverse
    // digit sum.
    while($temp > 0)
    {
        $rem = $temp % 10;
        $reverseDigitSum = $reverseDigitSum *
                                   10 + $rem;
        $temp = (int)($temp / 10);
    }
     
    // product of digit sum
    // and reverse digit
    // sum and assign it
    // to number variables.
    $number = $digitSum * $reverseDigitSum;
    return $number;
}
 
// Driver Code
$num = 1729;
 
// call check() function.
$x = check($num);
 
// check if original
// number equals
// to x or not
if ($num == $x)
echo("Yes");
else
    echo("No");
 
// This code is contributed by Ajit.
?>


Javascript


输出:

Yes

时间复杂度: O(log 10 (num))

辅助空间: 1