#21375: C++寫法


36563120 (雨)

學校 : 國立彰化師範大學
編號 : 121990
來源 : [120.107.188.16]
最後登入時間 :
2020-06-26 03:42:56
c459. 2. 自戀數 -- 106學年度全國資訊學科能力競賽 | From: [120.107.188.16] | 發表日期 : 2020-05-24 09:59

pow我自己寫一個

內建的pow在5的3次方會莫名其妙出錯...

#include <bits/stdc++.h>

using namespace std;

 

int fun1(int input)

{

    int count=0;

    while(input!=0)

    {

        input/=10;

        ++count;

    }

    return count;

}

 

int power(int base,int n)

{

    int sum=1;

    for(int i=0;i<n;++i)

        sum*=base;

    return sum;

}

 

int fun2(int input,int count,int base)

{

    int k=power(10,count-1),sum=0,temp=count;

    for(int i=0;i<temp;++i)

    {

        sum+=input/k*power(base,count-1);

        input%=k;

        k/=10;

        --count;

    }

    return sum;

}

 

int main()

{

    int a,b,count,dec=0;

    cin>>a>>b;

    count=fun1(b);

    dec=fun2(b,count,a);

    int k=power(10,count-1),sum=0;

    for(int i=0;i<count;++i)

    {

        sum+=power(b/k,count);

        b%=k;

        k/=10;

    }

    if(sum==dec)

        cout<<"YES"<<endl;

    else

        cout<<"NO"<<endl;

    return 0;

}

 
#21376: Re:C++寫法


fdhs109_GT (GT coding)

學校 : 桃園市私立復旦高級中學
編號 : 102099
來源 : [140.114.217.85]
最後登入時間 :
2024-03-27 01:07:43
c459. 2. 自戀數 -- 106學年度全國資訊學科能力競賽 | From: [59.115.64.100] | 發表日期 : 2020-05-24 10:46

pow 不只可以用在矩陣,也可以用在一般指數阿 @@

 

template <typename T>

inline T powi(T a, auto b) {

T re;

for (re = 1; b; b >>= 1, a *= a)

if(b & 1) re *= a;

return re;

}

 
#21377: Re:C++寫法


fdhs109_GT (GT coding)

學校 : 桃園市私立復旦高級中學
編號 : 102099
來源 : [140.114.217.85]
最後登入時間 :
2024-03-27 01:07:43
c459. 2. 自戀數 -- 106學年度全國資訊學科能力競賽 | From: [59.115.64.100] | 發表日期 : 2020-05-24 10:47

提醒你,

盡量不要貼答案,

別人還要練習 ~:)

 
ZeroJudge Forum