close
Content

一個 d 位數整數 N=n1n2n3ndni{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
B84E0EFA-CF14-4E02-AED9-B0BB189089EE
#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;
}
arrow
arrow
    文章標籤
    高中生程式解題 C++
    全站熱搜
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()