水仙花数:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
可以理解为有特殊规则的一种三位数
这个题目的主要难点是如何获取各位数上的值。
也许第一个想到的就是拆分,把他当做字符串,拆分,这也是可以的,但是并不是最优的解法
第二呢,就是我们常用的除法以及取模的方式。(在这里我们的除法是只会保留整数,模式除以整数剩余的部分值)
百位:把值除以100即可(去除个位加十位)
十位:把值除以10(等于得出一个以百位和十位组成的二位数),再模10(去除百位,得到十位)
个位:把值模以10即可(去除十位加百位)
public class DaffodilNumber {
public static void GetDaffodilNumber() {
// 找出个、十、百位上的数字
for(int i=100;i<1000;i++) {
int ge = i%10;
int shi = i/10%10;
int bai = i/100;
if(ge*ge*ge + shi*shi*shi + bai*bai*bai==i) {
Console.WriteLine(i + " ");
}
}
}
public static void main(String[] args) {
//执行方法
GetDaffodilNumber();
}
}