**随机排序
一个0-9的数据 要求每次调用函数排序都不相同**
import java.util.Arrays;
import java.util.Random;
public class 随机排序 {
public static void main(String[] args) {
text();
}
private static void text() {
int a[]={0,1,2,3,4,5,6,7,8,9};
int temp;
for(int i=0;i<a.length;i++){
double random=Math.random()*10;
int ranitn =(int)random;
temp=a[i];
a[i]=a[ranitn];
a[ranitn]=temp;
}
System.out.println(Arrays.toString(a));
}
}
2.输出 a-b之间的随机数
import java.util.Scanner;
public class a到b之间随机数
{
public static void main(String[] args) {
System.out.println("输入a,b2个数");
Scanner sc =new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println("随机生成a-b之间随机数");
double c=Math.random()*(b-a)+a;
System.out.println(Math.floor(c));
}
}
3,String常用的方法
import java.util.Arrays;
public class String常用方法练习 {
public static void main(String[] args) {
String test="abcdef";
int [] paixun={1,2,5,4,3,6};
//分割String
String[] split = test.split("c");
System.out.println(Arrays.toString(split));
//找出e在字符串出现的索引位置
System.out.println( test.indexOf("e"));
//将字符串变成字符数组
char [] chars = test.toCharArray();
//将数组排序
Arrays.sort(paixun);
System.out.println(Arrays.toString(paixun));
//获取字符串的第I个字符
System.out.println("charat="+test.charAt(2));
//截取字符存从A,B
System.out.println(test.substring(0,2));
//String转int
Integer.valueOf(test);
//int 转String
String.valueOf(123);
}
}
4.常见的排序
import java.util.Arrays;
public class 常见排序 {
public static void main(String[] args) {
int []a={10,1,4,6,7,8,9,2};
// ChaRuPX(a);
// XuanZhePX(a);
//MaopaoPX(a);
KuaiSuPX(a,0,a.length-1);
System.out.println("快速排序"+Arrays.toString(a));
}
/*
不熟
插入排序
原理: 从第二个数开始和前面的数比较,小于的前面的数就换位置否则不换
*/
public static void ChaRuPX(int[] a){
for(int i=1;i<a.length;i++){
int temp=a[i];//待插入的数
int j;
for( j = i;j > 0 && temp <a[j-1];j--){
a[j] = a[j-1]; //前一个较大的元素换到 j 下标位置
}
a[j] = temp;//上述条件不满足时的 j 下标位置就是temp适合的位置,temp保存元素插入到此
}
System.out.println("插入排序"+Arrays.toString(a));
}
public static void XuanZhePX(int[] a){
/*
选择排序
原理 循环 每次将最小的放在最前
*/
for(int i=0;i<a.length;i++){
//最小值
int min=a[i];
//最小数的下表
int indexJ=i;
int temp;
for(int j=i+1;j<a.length;j++){
if(min>a[j]) {
min = a[j];
indexJ = j;
}
}
temp=a[i];
a[i]=min;
a[indexJ]=temp;
}
System.out.println("选择排序"+Arrays.toString(a));
}
public static void MaopaoPX(int[] a) {
/*
冒泡排序
第一个元素开始,与下一个元素比较,若大于则交换位置,小于则不动,所以会经过N-1趟排序,
每一趟会把大的元素沉底,小的元素浮上来,所以叫冒泡排序。
*/
int temp;
int j;
for (int i = 0; i < a.length ; i++) { //n个数要循环n-1趟
for (j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) { //比后一个元素大,就交换两数位置
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
System.out.println("冒泡排序" + Arrays.toString(a));
}
/*
快速排序
*/
public static void KuaiSuPX(int[] a,int star,int end) {
if (star >= end)
return;//递归出口
int i=star;
int j=end;
int temp=a[star];//基准数
while(i!=j){
while(a[j]>=temp&& j > i){j--;}
while(a[i]<=temp&& i < j){i++;}
int s=a[i];
a[i]=a[j];
a[j]=s;
}
if(i==j){
a[star]=a[i];
a[i]=temp;
}
KuaiSuPX(a, star, i - 1);
KuaiSuPX(a, i+1, end);
}
}
4.打印水仙花
public class 打印水仙花数 {
/*
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,
其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
*/
public static void main(String[] args) {
for(int i=100;i<1000;i++){
int ge=i%10;
int shi=i/10%10;
int bai=i/100;
if(i==(Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3))){
System.out.println(i);
}
}
}
}
5.文件读取
import java.io.*;
import java.lang.reflect.Array;
import java.util.Arrays;
public class 文件读取 {
public static void main(String[] args) throws IOException {
byte []by=new byte[1024];
int num=0;
FileInputStream input =new FileInputStream("D:\\test\\test.docx");
InputStreamReader isr =new InputStreamReader(input);
BufferedReader br= new BufferedReader(isr);
FileOutputStream out =new FileOutputStream("test");
String line =null;
while((line=br.readLine())!=null) {
System.out.println(line);
}
br.close();
}
}
6.斐波那契数列
import java.util.Scanner;
/*题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
*/
public class 斐波那契数列 {
public static void main(String[] args) {
System.out.println("请输入月数:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = run(n) ; //递推公式
System.out.println("第"+ n + "个月有" + m + "对兔子");
scanner.close();
}
public static int run(int n) { //递归方法
if(n==1||n==2){ return 1;}
else
{ return run(n-1)+run(n-2);} //递归调用
}
}
7.素数判断
public class 素数判断 {
/*
题目:判断101-200之间有多少个素数,并输出所有素数。
*/
public static void main(String[] args) {
int sum = 0;
for (int i = 101; i < 200; i++) {
int shu = issushu(i);
if (shu == 1) {
System.out.println("素数" + i);
++sum;
}
}
System.out.println("总数" + sum);
}
private static int issushu(int n) {
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return 1;
}
}
return 0;
}
}