谁能帮我解释一下这段java代码,其中的算法不太明白

来源:百度知道 编辑:UC知道 时间:2024/05/15 03:07:02
求的是3位数中的水仙花数,就是下面程序中的这3行代码,请问这是怎么算的
r=i/100;
s=(i-r*100)/10;
t=i-r*100-s*10;
-------------------------------------------------------
这是源程序
public class sxh{
public static void main(String args[])
{
int i=100;
int r,s,t;
r=0;
s=0;
t=0;
while(i<1000)
{
r=i/100;
s=(i-r*100)/10;
t=i-r*100-s*10;
if(i==r*r*r+s*s*s+t*t*t)
{
System.out.println(i+" ");
}
i=i+1;
}
}
}

水仙花是比如一个三位数的百,十,个位的三次方相加等于这个三位数

r=i/100; 这个是求百位的,比如234/100等于2
s=(i-r*100)/10; 这个是求十位,可以写成s=i/10-r*10
234/10等于23,2*10等于20,23-20=3
t=i-r*100-s*10; 这个是个位,可以写成t=i%10,等于4

r是百位
s是十位
t是个位

这里int型都是整除的