close
Content
一個 d 位數整數 N=n1n2n3…nd,ni∈{1,2,3,4,5,6,7,8,9,0} 被稱為自戀數 (narcissistic number) 若 N=nd1+nd2+nd3+…+ndd。
例如 3 位數整數 153 是自戀數因為 153=13+53+33 ,而 4 位數整數 1321 不是自戀數因為 14+34+24+14=99 非 1321。
非十進位制數字也會有自戀數,例如 3 進位制數字 (122)3=17 且 13+23+23=17,或 5 進位制數字 (3134)5=419 且 34+14+34+44=419。
請寫一個程式判斷一整數是否為自戀數。
Input
第一列有兩個非負整數 b 與 N,代表 N 為 b 進位制整數。
Output
若輸出之整數為自戀數,輸出 YES,若否則輸出 NO。
Sample Input #1
輸入範例 1: 10 153 輸入範例 2: 10 1321 輸入範例 3: 3 122 輸入範例 4: 5 3134
Sample Output #1
輸出範例 1: YES 輸出範例 2: NO 輸出範例 3: YES 輸出範例 4: YES
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (6%): 0.5s , <1K
公開 測資點#1 (6%): 0.5s , <1K
公開 測資點#2 (6%): 0.5s , <1K
公開 測資點#3 (6%): 0.5s , <1K
公開 測資點#4 (6%): 0.5s , <1K
公開 測資點#5 (6%): 0.5s , <1K
公開 測資點#6 (6%): 0.5s , <1K
公開 測資點#7 (6%): 0.5s , <1K
公開 測資點#8 (5%): 0.5s , <1K
公開 測資點#9 (5%): 0.5s , <1K
公開 測資點#10 (5%): 0.5s , <1K
公開 測資點#11 (5%): 0.5s , <1K
公開 測資點#12 (5%): 0.5s , <1K
公開 測資點#13 (5%): 0.5s , <1K
公開 測資點#14 (5%): 0.5s , <1K
公開 測資點#15 (2%): 0.5s , <1K
公開 測資點#16 (2%): 0.5s , <1K
公開 測資點#17 (1%): 0.5s , <1K
公開 測資點#18 (1%): 0.5s , <1K
公開 測資點#19 (1%): 0.5s , <1K
公開 測資點#20 (1%): 0.5s , <1K
公開 測資點#21 (1%): 0.5s , <1K
公開 測資點#22 (1%): 0.5s , <1K
公開 測資點#23 (1%): 0.5s , <1K
公開 測資點#24 (1%): 0.5s , <1K
公開 測資點#25 (1%): 0.5s , <1K
公開 測資點#26 (1%): 0.5s , <1K
公開 測資點#0 (6%): 0.5s , <1K
公開 測資點#1 (6%): 0.5s , <1K
公開 測資點#2 (6%): 0.5s , <1K
公開 測資點#3 (6%): 0.5s , <1K
公開 測資點#4 (6%): 0.5s , <1K
公開 測資點#5 (6%): 0.5s , <1K
公開 測資點#6 (6%): 0.5s , <1K
公開 測資點#7 (6%): 0.5s , <1K
公開 測資點#8 (5%): 0.5s , <1K
公開 測資點#9 (5%): 0.5s , <1K
公開 測資點#10 (5%): 0.5s , <1K
公開 測資點#11 (5%): 0.5s , <1K
公開 測資點#12 (5%): 0.5s , <1K
公開 測資點#13 (5%): 0.5s , <1K
公開 測資點#14 (5%): 0.5s , <1K
公開 測資點#15 (2%): 0.5s , <1K
公開 測資點#16 (2%): 0.5s , <1K
公開 測資點#17 (1%): 0.5s , <1K
公開 測資點#18 (1%): 0.5s , <1K
公開 測資點#19 (1%): 0.5s , <1K
公開 測資點#20 (1%): 0.5s , <1K
公開 測資點#21 (1%): 0.5s , <1K
公開 測資點#22 (1%): 0.5s , <1K
公開 測資點#23 (1%): 0.5s , <1K
公開 測資點#24 (1%): 0.5s , <1K
公開 測資點#25 (1%): 0.5s , <1K
公開 測資點#26 (1%): 0.5s , <1K
#include <iostream> #include <math.h> using namespace std; int main() { int b; //幾進制 string s; while (cin>>b>>s) { int n=0; //計算進制 int sum=0; //計算次方數總和 int len=s.size(); for (int i = 0; i < len; i++) { int digit=s[i]-'0'; //"5"轉5方法: "5"-"0" n=n*b+digit; sum+=pow(digit,len); } if (n==sum) {cout<<"YES\n";} else{cout<<"NO\n";} } return 0; }
文章標籤
全站熱搜
留言列表