Java算法总结 - 从易到难
原创
©著作权归作者所有:来自51CTO博客作者ClearlightY的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、获取数字中的每一位
int i = 58713;
个位 : i % 10;
十位 : i / 10 % 10;
百位 : i / 10 / 10 % 10;
千位 : i / 1000 % 10;
万位 : i / 10000 % 10;
二、元素值使用随机数生成(范围为i~j)
Random r = new Random();
int num = r.nextInt(j - i + 1) + i;
原理 : r.nextInt(num)
会生成0~num-1的随机数. 那么可以先生成i~j范围内的值,在依次往后移i个即可.
随机获取小写字母
Random r = new Random();
char c = (char) (r.nextInt('z' - 'a' + 1) + 'a');
案例 : 随机获取5个大小写字母
public class CharRandom{
public static void main(String[] args) {
String str = getStr();
System.out.println(str);
}
private static String getStr() {
char[] chs = new char[5];
Random r = new Random();
for (int i = 0; i < chs.length; i++) {
chs[i] = (char)(r.nextInt('z' - 'a' + 1) + 'a');
}
int bound = r.nextInt(chs.length);
for (int i = 0; i < bound; i++) {
int j = r.nextInt(chs.length);
chs[j] = (char) (r.nextInt('Z' - 'A' + 1) + 'A');
}
return new String(chs);
}
}
三、数列求和
摘自百度百科
为什么会将初中学的求和公式放在这呢? 原因很简单,如果你想要真的遇到了一个要数列求和的问题.你不使用公式的话,那么你难道真的去累加么?那将是多么的耗时!当你真正用到这公式,瞬间将和求得,心里心想简直不要太厉害. ?