为有牺牲多壮志,敢教日月换新天。

[Swift]LeetCode1134. 阿姆斯特朗数 | Armstrong Number

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/11258419.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

The k-digit number N is an Armstrong number if and only if the k-th power of each digit sums to N.

Given a positive integer N, return true if and only if it is an Armstrong number.

Example 1:

Input: 153
Output: true
Explanation: 
153 is a 3-digit number, and 153 = 1^3 + 5^3 + 3^3.

Example 2:

Input: 123
Output: false
Explanation: 
123 is a 3-digit number, and 123 != 1^3 + 2^3 + 3^3 = 36.

Note:

  1. 1 <= N <= 10^8

假设存在一个 k 位数 N,其每一位上的数字的 k 次幂的总和也是 N,那么这个数是阿姆斯特朗数。

给你一个正整数 N,让你来判定他是否是阿姆斯特朗数,是则返回 true,不是则返回 false

示例 1:

输入:153
输出:true
示例: 
153 是一个 3 位数,且 153 = 1^3 + 5^3 + 3^3。

示例 2:

输入:123
输出:false
解释: 
123 是一个 3 位数,且 123 != 1^3 + 2^3 + 3^3 = 36。

提示:

  1. 1 <= N <= 10^8

4 ms

 1 class Solution {
 2     func isArmstrong(_ N: Int) -> Bool {
 3         var N = N
 4         var t:[Int] = [Int](repeating:0,count:11)
 5         var cnt:Int = 0
 6         var i:Int = 0
 7         var j:Int = 0
 8         var orz:Int = N
 9         var ans:Int = 0
10         while(N != 0)
11         {
12             cnt += 1
13             t[cnt] = N % 10
14             N /= 10
15         }
16         for i in 1...cnt
17         {
18             var res:Int = 1
19             for j in 1...cnt
20             {
21                 res *= t[i]
22             }
23             ans+=res
24         }
25         return ans == orz
26     }
27 }

 

posted @ 2019-07-28 12:02  为敢技术  阅读(983)  评论(0编辑  收藏  举报