入门级别算法两篇

水仙花数

水仙花数的定义:

一个 N 位非负整数,其各位数字的 N 次方和等于该数本身

栗子:

153 = 13^3 + 53^3 + 33^3

370 = 3^3 + 7^3 + 0^3

371 = 3^3 + 7^3 + 1^3

1634 = 14^4 + 64^4 + 34^4 + 44^4。

更详细的推荐:维基百科

描述:

给出,找到所有的位十进制水仙花数。

样例:

比如 , 所有水仙花数为:。

而对于 , 则没有 2 位的水仙花数,返回 。

题目分析:

弄懂水仙花数!

判断一个数是否为水仙花数:

要找出水仙花数,首先我们需要能识别一个数是否为水仙花数:

找出所有的`n`位十进制水仙花数

确定查找的范围(找出n位的最大值与最小值)

遍历每个数,判断为水仙花数,添加到数组中

注意:

查找位数过大会出现性能问题,以及最大值溢出问题。

反转一个 3 位整数

描述:

反转一个只有 3 位数的整数

样例:

123 反转之后是 321。

900 反转之后是 9。

题目分析:

这种形式需要转为

最后输出的数字。

转数组操作:

这是最简单,最容易想到的答案:

数字转成字符串再转成数组

颠倒数组(翻转了),恢复成字符串

输出正常数字,这里用了+号。(用等也是可以的)

取余数,逐个颠倒

通过取余操作,个位转百位,十位转十位,百位转个位。

比如:123=>300+20+1,输出321

拼接字符串:

数字转字符串

从后往前取对应位置字符,拼接成一个颠倒的字符串

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180912G1PAV600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券