1.求1+2+…+n
-
`class Solution {
public int sumNums(int n)
{boolean flag = n > 0 && (n += sumNums(n - 1)) > 0; return n;
}
}
` -
当n>0为假时,语句已经确定为假,不会执行n>0后面的递归式。
2.2的幂`class Solution {
public boolean isPowerOfTwo(int n) {
int i;
int k = 1;
if(n <= 0) {
return false;
}
if(n == 1) {
return true;
}
for(i = 1; i <= 31; ++i) {
k *= 2;
if(k==n)
{
return true;
}
}
return false;}
}
` -
List item
要注意32位整型的上限!
-
求3的幂
-
-
`class Solution {
public boolean isPowerOfTwo(int n) {
int i;
int k = 1;
if(n <= 0) {
return false;
}
if(n == 1) {
return true;
}
for(i = 1; i <= 20; ++i) {
k *= 3;
if(k==n)
{
return true;
}
}
return false;}
}
` -
同理注意到20左右就达32位上限了
-
4.求4的幂
-
也同理需要注意不超出32位整型哦! -
class Solution { public boolean isPowerOfFour(int n) { int i; int k = 1; if(n <= 0) { return false; } if(n == 1) { return true; } for(i = 1; i <= 15; ++i) { k *= 4; if(k==n) { return true; } } return false; } }
5.求n的第k个因子 -
-
`class Solution {
public int kthFactor(int n, int k)
{
int i;
int m= 0;
for(i = 1; i <= n; ++i) {
if(n % i== 0) {
++m;
if(m== k) {
return i;
}
}
}
return -1;
}
}`
这里我只弄第k个因子哈,不排序
6.
-
`class Solution {
public boolean isPerfectSquare(int num) {int i;
long m;
for(i = 1; ; ++i) {
m = (long)i*i;
if(m==num) {
return true;
}
if(m>num) {
return false;
}
}
}
}`
注意long型的使用。