HM034 水仙花区间

HM034 水仙花区间

HM034 水仙花区间

来源: 第 34 集 程序流程结构-循环结构案例-水仙花数

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

水仙花数指**三位数**中,个位、十位、百位的立方之和恰好等于它本身。三位数最小是 \(100\),最大是 \(999\),再大就是四位数,没有千位。例如 \(153\):\(1^3=1\),\(5^3=125\),\(3^3=27\),\(1+125+27=153\)。

拆位技巧(两个整数相除只留整数部分,小数直接丢掉):

  • 个位:对 \(10\) 取模,n % 10
  • 十位:先整除 \(10\) 变成两位数,再对 \(10\) 取模,(n / 10) % 10
  • 百位:整除 \(100\),n / 100

立方用乘法连乘三次(a * a * a),不要查表写死。请用 do while 从区间左端扫到右端:循环体里拆位、判断、必要时输出,再自增;条件为当前值小于等于右端。

读入闭区间 \([L,R]\),按从小到大输出其中全部水仙花数。

输入格式

一行两个整数 \(L\)、\(R\)(\(100 \le L \le R \le 999\))。

输出格式

一行,区间内的水仙花数,相邻之间一个空格;若一个都没有,输出 NONE。行末换行。

样例

输入 #1

100 999

输出 #1

153 370 371 407

输入 #2

150 160

输出 #2

153

说明

全体三位数里只有这四个水仙花数。可自行验算:\(370=27+343+0\),\(371=27+343+1\),\(407=64+0+343\)。

200 300 应输出 NONEdo 的大括号是循环体,末尾 while 的小括号是“还小于等于 \(R\) 就继续”。

信息

ID
1033
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者