今日份练习
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
public static void main(String[] args){
int n=0;
Scanner length=new Scanner(System.in);
System.out.println("请输入数组长度");
n=length.nextInt();
int []a=new int[n];
Scanner sc=new Scanner(System.in);
System.out.println("输入数组元素");
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
System.out.println("输入的数组是:");
for(int i:a){
System.out.print(i+" ");
}
int min=n-1,max=0,temp;
for(int i=0;i<n-1;i++){
if(a[max]<a[i]){//最大的与第一个元素交换
temp=a[max];
a[max]=a[i];
a[i]=temp;
}
if(a[min]>a[i]){
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
System.out.println();
System.out.println("交换的数组为:");
for(int i:a){
System.out.print(i+" ");
}
}
运行结果:
请输入数组长度
5
输入数组元素
1 2 3 4 5
输入的数组是:
1 2 3 4 5
交换的数组为:
5 2 3 4 1
Process finished with exit code 0
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报道3的人退出圈子,问最后留下的是原来第几号的那位。
public static void main(String[] args){
System.out.print("请输入一个整数:");
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
//定义数组变量标识某人是否还在圈内
boolean[] isIn=new boolean[n];
for(int i=0;i<isIn.length;i++){
isIn[i]=true;
}
int inCount=n;//定义圈内人数
int countNum=0;//定义报数
int index=0;//定义索引
while(inCount>1){//最后一个时退出循环
if(isIn[index]){//判断下一个人是否还在圈内
countNum++;//在的话报数
if(countNum==3){
isIn[index]=false;
countNum=0;//报数清零下一个好从1开始
inCount--;//圈内人数减一
}
}
index++;//下一个人的位置索引值
if(index==n){//当索引到最后之后再从头开始
index=0;
}
}
for(int i=0;i<n;i++){
if(isIn[i]){//最后只有一个符合条件的
System.out.println("留下的是:"+(i+1));
}
}
}
运行结果:
请输入一个整数:10
留下的是:4
Process finished with exit code 0
写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度
public static void main(String[] args){
System.out.println("请输入一串字符:");
inPut();
}
public static void inPut(){
Scanner sc=new Scanner(System.in);
String i=sc.next();
System.out.println("输入的字符串为:"+i);
System.out.println("输入字符串的长度为:"+i.length());
}
运行结果:
请输入一串字符:
hello
输入的字符串为:hello
输入字符串的长度为:5
Process finished with exit code 0
编写一个函数,当输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数,调用函数1/1+1/3+…+1/n
public static void main(String[] args){
System.out.println("输入一个数:");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
double sum=0;
if(a%2==0){
for(double i=2;i<a;i+=2){
sum+=1/i;
if(i==a){
System.out.print("1/"+(int)i);//输出最后一项,最后用break,中断后面的执行
break;
}
System.out.println("1/"+(int)i+"+");
//输出相加的项后面加个加号
}
System.out.println("="+sum);
}
}
运行结果:
输入一个数:
8
1/2+
1/4+
1/6+
=0.9166666666666666
Process finished with exit code 0
字符串排序
public static void main(String[] args){
String[] str = {"abc","cad","acb","do","lol"};
for(int i=str.length-1;i>=1;i--){
for(int j=0;j<=i-1;j++){
//该方法用于判断一个字符串是大于、等于还是小于另一个字符串。
if(str[j].compareTo(str[j+1])<0){
String temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
//此处使用了增强for循环遍历数组元素
for(String subStr:str)//定义了一个String类型的变量接收遍历后的数组元素
System.out.print(subStr+" ");//将遍历后的数组元素依次输出
}
lol do cad acb abc
Process finished with exit code 0
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔到海中,拿走了一份。第二只猴子把剩下的猴子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
public static void main(String[] args){
System.out.println("总共有"+getPeach(1)+"个桃子");
}
public static int getPeach(int i){
if(i==5){
return 6;
}else {
return getPeach(i+1)*5+1;
}
}
运行结果:
总共有3906个桃子
Process finished with exit code 0
求0-7所能组成的奇数个数
public static void main(String[] args){
int count=0;
//声明由数字组成的数
int n=8;
//一位数
count=n/2;
//两位数
count+=(n-1)*n/2;
//三位数
count+=(n-1)*n*n/2;
//四位数
count+=(n-1)*n*n*n/2;
//五位数
count+=(n-1)*n*n*n*n/2;
//六位数
count+=(n-1)*n*n*n*n*n/2;
//七位数
count+=(n-1)*n*n*n*n*n*n/2;
System.out.println("0-7所能组成的奇数个数:"+count);
}
运行结果:
0-7所能组成的奇数个数:1048576
Process finished with exit code 0
一个偶数总能表示为两个素数之和
public static void main(String[] args){
System.out.println("请输入一个偶数:");
Scanner scanner=new Scanner(System.in);
int input=scanner.nextInt();
while(input%2!=0){
System.out.println("你输入的不是偶数,请重新输入:");
input=scanner.nextInt();
}
for(int i=2;i<input;i++){
if(isRightNum(i)&&isRightNum(input-i)){
System.out.println(input+"="+i+"+"+(input-i));
break;
}
}
}
private static boolean isRightNum(int i){
for(int j=2;j<Math.sqrt(i+1);j++){
if(i%j==0){//确定是素数
return false;
}
}
return true;
}
运行结果:
请输入一个偶数:
6
6=3+3
Process finished with exit code 0