清明在家,无聊,把一些经典的算法总结了一下.
一、求最大,最小值
Scanner input=new Scanner(System.in);
int[] a={21,31,4,2,766,345,2,34};
//这里防止数组中有负数,所以初始化的时候给的数组中的第一个数。
int max=a[0];
int min=a[0];
for (int i = 0; i < a.length; i++) {
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
} System.out.println("最大的数是:"+max);
System.out.println("最小的值是:"+min);
二、1--100之间的质数(什么叫质数,就是只能被1和本身能除尽的数)
//因为1不是质数,所以排除在外
for (int i = 2; i < 100; i++) {
boolean a=true;
for (int j = 2; j < i/2+1; j++) {
if(i%j==0){
a=false;
break;
}
}
if(a)
System.out.print(i+" ");
}
三、斐波纳契数列(如:1,1,2,3,5,8,11。。。)
int a=1;
int b=0;
for (int i = 1; i <= 10; i++) {
a=a+b;
System.out.print(a+" ");
b=a+b;
System.out.print(b+" ");
}
四、输入一个正整数,倒着打印出来(如:123456789,打印出来是:987654321)
Scanner input=new Scanner(System.in);
int a=input.nextInt();
for (int i = 1; i < 999; i++) {
if(a!=0){
System.out.print(a%10+" ");
a=a/10;
}else{
break;
}
}
五、冒泡排序
int score[] = { 167, 69, 75, 87, 89, 90, 99, 100 };
// 最多做n-1趟排序
for (int i = 0; i < score.length - 1; i++) {
// 对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
for (int j = 0; j < score.length - i - 1; j++) {
// 把小的值交换到后面
if (score[j] > score[j + 1]) {
int temp = score[j];
score[j] = score[j + 1];
score[j + 1] = temp;
}
}
}
System.out.print("最终排序结果:");
for (int a = 0; a < score.length; a++) {
System.out.print(score[a] + "\t");
}
先写这么多,累啊,休息休息。