CCF NOI1008 水仙花数
问题链接:CCF NOI1008 水仙花数。
时间限制:
1000 ms 空间限制: 262144 KB
题目描述
输入一个三位数n,判断是否为水仙花数,如果是则输出“YES”,不是则输出“NO”。水仙花数:是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
输入
输入一个三位数n。
输出
按照题目描述输出对应结果。
样例输入
153
样例输出
YES
数据范围限制
问题分析
这是一个与进制有关的计算问题。
据说阿拉伯数字是印度人发明的。今天,采用阿拉伯数字的记数法被人们普遍采用。而且人们使用的是10进制。
程序说明
对于输入的数据,分别取出个位、十位和百位,再计算立方和,然后进行比较,最后输出结果。
要点详解
- 对于一个整数,用10作为除数,取其余数,则得到个位。例如123%10=3。
- 对于一个整数,用10作为除数,取其商,相当于向右移动1位,并且丢弃小数。例如123/10=12。
100分通过的C语言程序:
#include <stdio.h> int main(void) { int n, d1, d10, d100; scanf("%d", &n); d1 = n % 10; d10 = n / 10 % 10; d100 = n / 100; if(n == d100 * d100 * d100 + d10 * d10 * d10 + d1 * d1 * d1) printf("YES\n"); else printf("NO\n"); return 0; }