Leetcode202:快乐数
public boolean isHappy(int n) {
Set<Integer> seen=new HashSet<Integer>();
while (n!=1&&!seen.contains(n)) {
seen.add(n);
n=getNext(n);
}
return n==1;
}
private int getNext(int n) {
int totalSum=0;
while (n>0) {
int d=n%10;
totalSum+=d*d;
n=n/10;
}
return totalSum;
}
Leetcode172:阶乘后的零
/**
规律就是每隔 5 个数,出现一个 5,每隔 25 个数,出现 2 个 5,每隔 125 个数,出现 3 个 5... 以此类推。
最终 5 的个数就是 n / 5 + n / 25 + n / 125 ...
写程序的话,如果直接按照上边的式子计算,分母可能会造成溢出。所以算 n / 25 的时候,我们先把 n 更新,n = n / 5,然后再计算 n / 5 即可。后边的同理。
*/
public static int trailingZeroes(int n) {
int count = 0;
while (n > 0) {
count += n / 5;
n = n / 5;
}
return count;
}
Leetcode171:Excel表列序号
public int titleToNumber(String s) {
int ans=0;
for (int i = 0; i < s.length(); i++) {
int num=s.charAt(i)-'A'+1;
ans=ans*26+num;
}
return ans;
}