题目: 定义如下的一个数为happy数:
例如19为happy数
12+92=82
82+22=68
62+82=100
12+02+02=1
即循环各个位数的平方和最后是否为1,如果为1即为happy数。
代码:
public boolean isHappy(int n) {
int sum=0;
while(n>9)
{
sum+=Math.pow(n%10,2);//求平方和
n=n/10;
}
sum+=Math.pow(n,2);
if(sum>9) return isHappy(sum);
if(sum==1) return true;
else return false;
}
在java中求平方有两种方法:
1. 直接将同一个数相乘;
int b=6;
int a = b*b;//两个数相乘达到平方的效果
- 使用Math的pow方法求平方
//第一个参数是底数,第二个数是指数
int b=6;
int a = Math.pow(b,2);//表示b的平方
java中^为按位异或,不要和MATLAB搞混了~