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 应输出 NONE。do 的大括号是循环体,末尾 while 的小括号是“还小于等于 \(R\) 就继续”。
信息
- ID
- 1033
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者