اطرح حاصل الضرب ومجموع الأرقام لحل كود Leetcode عدد صحيح


مستوى الصعوبة سهل
كثيرا ما يطلب في سيسكو جوجل اوبر
الرياضيات

المشكلة بيان

في هذه المسألة ، علينا إيجاد الفرق بين حاصل ضرب الأرقام ومجموع أرقام المعطى إيجابي عدد صحيح.

مثال

1234
14

تفسير: المنتج = 4 * 3 * 2 * 1 = 24 و المجموع = 4 + 3 + 2 + 1 = 10. إذن ، الفرق هو 14

2045
-11

تفسير: المنتج = 2 * 0 * 4 * 5 = 0 ومجموع = 2 + 0 + 4 + 5 = 11. إذن ، الفرق هو -11.

الرسالة

يصبح من السهل إرجاع المخرجات المرغوبة إذا تمكنا من استخراج الأرقام من العدد الصحيح واحدًا تلو الآخر. يمكن القيام بذلك بسهولة باستخدام عامل التشغيل "٪" ، نظرًا لأن "٪ 10" يجلب لنا الرقم الأخير من عدد صحيح ، يمكننا بعد ذلك قسمة العدد الصحيح على 10 لإخراج آخر رقم منه (كما فعلنا في هذا مشكلة). بهذه الطريقة ، يمكننا معالجة كل رقم وإيجاد حاصل الضرب والمبلغ. بعد ذلك ، يمكننا إرجاع الفرق بينهما للحصول على النتيجة المطلوبة.

اطرح حاصل الضرب ومجموع الأرقام لحل كود Leetcode عدد صحيح

خوارزمية

  1. تهيئة متغيرين ، المنتج = 1 و مجموع = 0 لتخزين المنتج ومجموع أرقام العدد الصحيح N على التوالي
  2. اتبع هذه الخطوات حتى N> 0:
    1. اضرب الرقم الأخير من N لـ المنتج, المنتج * = N٪ 10
    2. أضف الرقم الأخير من N إلى مجموع, مجموع + = ن٪ 10
    3. انقسام N بمقدار 10 لإسقاط آخر رقم ، ن / = 10
  3. الإرجاع المنتج - المبلغ

تنفيذ طرح المنتج ومجموع الأرقام لحل كود Leetcode عدد صحيح

برنامج C ++

#include <bits/stdc++.h>
using namespace std;

int subtractProductAndSum(int n)
{
    int product = 1 , sum = 0;
    while(n > 0)
    {
        //n % 10 extracts the last digit out of N
        product *= (n % 10);
        sum += (n % 10);
        n /= 10;
    }
    return product - sum;
}

int main()
{
    int n = 1234;
    cout << subtractProductAndSum(n) << '\n';
    return 0;
}

برنامج جافا

class subtract_product_and_sum
{
    public static void main(String args[])
    {
        int n = 1234;
        System.out.println(subtractProductAndSum(n));
    }

    static int subtractProductAndSum(int n)
    {
        int product = 1 , sum = 0;
        while(n > 0)
        {
            //n % 10 extracts the last digit out of N
            product *= (n % 10);
            sum += (n % 10);
            n /= 10;
        }
        return product - sum;
    }
}
14

تحليل التعقيد لطرح المنتج ومجموع أرقام حل Leetcode الصحيح

تعقيد الوقت

O (تسجيل2â € <N) حيث نقوم بعمل حلقة لكل رقم في عدد صحيح N.

تعقيد الفضاء

يا (1) حيث نستخدم مساحة ذاكرة ثابتة.