今日份练习

今日份练习

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值