Leetcode Solution ၏ကုန်ပစ္စည်းနှင့် Digits ၏ပမာဏကိုနုတ်ပါ


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Cisco သည် Google Uber
သင်္ချာ

ပြProbleနာဖော်ပြချက်

ဤပြproblemနာတွင်ကျွန်ုပ်တို့သည်ဂဏန်းများ၏ထုတ်ကုန်နှင့်ပေးထားသောတစ်ခု၏ဂဏန်းများအကြားခြားနားချက်ကိုရှာဖွေရန်လိုအပ်သည် အပြုသဘောဆောင် ကိန်း။

နမူနာ

1234
14

ရှင်းလင်းချက်: ကုန်ပစ္စည်း = 4 * 3 * 2 * 1 = 24 နှင့် Sum = 4 + 3 + 2 + 1 = 10. ထို့ကြောင့်ခြားနားချက်မှာ 14 ဖြစ်သည်။

2045
-11

ရှင်းလင်းချက်: ကုန်ပစ္စည်း = 2 * 0 * 4 * 5 = 0 နှင့် Sum = 2 + 0 + 4 + 5 = 11. ဒီတော့ခြားနားချက် -11 ဖြစ်ပါတယ်။

ချဉ်းကပ်နည်း

ကိန်းဂဏန်းများကိုတစ်လုံးတည်းမှထုတ်ယူနိုင်လျှင်လိုချင်သောရလဒ်ကိုပြန်ယူရန်လွယ်ကူလာသည်။ ၎င်းကို '%' အော်ပရေတာကိုအသုံးပြုခြင်းအားဖြင့်အလွယ်တကူပြုလုပ်နိုင်သည်၊ “% 10” ကကိန်းဂဏန်းတစ်ခု၏နောက်ဆုံးဂဏန်းကိုထုတ်ယူသည်။ ပြီးလျှင်ကိန်းဂဏန်းကို ၁၀ နှင့် ပိုင်း၍ နောက်ဆုံးဂဏန်းကိုထုတ်ယူနိုင်သည်။ ပြ)နာ) ။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ဂဏန်းတစ်ခုစီကိုတွက်ချက်။ ထုတ်ကုန်နှင့်ပေါင်းလဒ်ကိုရှာနိုင်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်လိုအပ်သောရလဒ်ရရှိရန်၎င်းတို့အကြားခြားနားချက်ကိုပြန်ပို့နိုင်သည်။

Leetcode Solution ၏ကုန်ပစ္စည်းနှင့် Digits ၏ပမာဏကိုနုတ်ပါ

algorithm

  1. variable နှစ်ခုကိုစတင်ပါ။ ကုန်ပစ္စည်း = 1 နှင့် ငှေပေါငျး ထုတ်ကုန်နှင့်ကိန်းဂဏန်း၏ပေါင်းလဒ်ကိုသိမ်းဆည်းရန် = 0 N အသီးသီး
  2. သည်အထိဒီအဆင့်တွေကိုလိုက်နာပါ N> 0:
    1. N ၏နောက်ဆုံးဂဏန်းကိုမြှောက်ပါ ကုန်ပစ္စည်း, ထုတ်ကုန် * = N ကို% 10
    2. N ၏နောက်ဆုံးဂဏန်းကိုထည့်ပါ ငှေပေါငျး, ပေါင်းလဒ် + = N ကို% 10
    3. ခှဲခွား N နောက်ဆုံးဂဏန်းကို 10 ဖြုတ်ပစ်ရန်, N / = 10
  3. ပြန်လာ ထုတ်ကုန် - ပေါင်းလဒ်

ကုန်ပစ္စည်းထုတ်နုတ်ပြီး Integer Leetcode Solution ၏ကိန်းဂဏန်းများကိုအကောင်အထည်ဖော်ခြင်း

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;
}

Java အစီအစဉ်

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

ရှုပ်ထွေးမှုအားခွဲခြမ်းစိတ်ဖြာခြင်းထုတ်ကုန်နှင့် Integer Leetcode Solution ၏ဂဏန်းပေါင်းစပ်မှု၏ပမာဏ

အချိန်ရှုပ်ထွေး

အို (မှတ်တမ်း2N) ကိန်းတစ်ခုအတွက်ကိန်းတစ်ခုအတွက်ကျွန်တော်တို့ loop လုပ်တဲ့အခါ

အာကာသရှုပ်ထွေးမှု

အို (၁) ကျနော်တို့စဉ်ဆက်မပြတ်မှတ်ဉာဏ်အာကာသကိုသုံးပါအဖြစ်။