java程序设计(第十二次作业)

这个博客包含了多个编程题目,包括寻找考试排名、构建奇数序列、奇偶排序、整数去重、接水问题、二进制分类、画矩形、玩数字游戏、计算等比数列末项、矩阵行交换以及字符串哈希计算。每个问题都提供了Java代码实现,涉及数组操作、排序算法、数据结构和数学逻辑。
摘要由CSDN通过智能技术生成

目录

         57:谁考了第k名

58:奇数单增序列

59:整数奇偶排序

60:整数去重

61:接水问题

62:二进制分类

63:画矩形

64:敲七

66:等比数列末项计算

67:矩阵交换行

68:字符串hash

69:蛇形填充数组

70:反反复复


57:谁考了第k名

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String []args)
    {
    	Scanner cin =  new Scanner(System.in);
    	int n=cin.nextInt();
    	int k=cin.nextInt();
    	zx[] zxx=new zx[n];
        for(int i=0;i<n;i++) {
        	zxx[i]=new zx(cin.nextInt(),cin.nextDouble());
        }  
        Arrays.sort(zxx);
        System.out.println(zxx[k-1].xuehao+" "+zxx[k-1].chengji);        
    }
}

class zx implements Comparable<zx> {
	int xuehao;
	double chengji;
	public zx(int xuehao, double chengji) {
        this.xuehao = xuehao;
        this.chengji = chengji;
    }
	 @Override
	    public int compareTo(zx o) {
	          return o.chengji>this.chengji?1:-1;
	    }
}

58:奇数单增序列

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
	public static void main(String[]args){
		Scanner cin = new Scanner(System.in);
		int n=cin.nextInt();
		int []shuzu=new int[n];
		List<String> list = new ArrayList<String>();
		for(int i=0;i<n;i++) {
			shuzu[i]=cin.nextInt();
		}
		Arrays.sort(shuzu);
		for(int i=0;i<n;i++) {
			if(shuzu[i]%2!=0) {
				String s=String.valueOf(shuzu[i]);
				list.add(s);
			}
		}
        String list2;
		list2 = list.toString().replace("[","").replace("]","").replace(" ","");
		System.out.print(list2);
    }
}

59:整数奇偶排序

import java.util.Arrays;
import java.util.Scanner;
public class Main {
	public static void main(String[]args){
		Scanner cin = new Scanner(System.in);
		int []shuzu=new int[10];
		for(int i=0;i<10;i++) {
			shuzu[i]=cin.nextInt();
		}
		Arrays.sort(shuzu);
		for(int j=9;j>=0;j--) {
			if(shuzu[j]%2!=0) {
				System.out.print(shuzu[j]+" ");
			}
		}
		for(int s=0;s<10;s++) {
			if(shuzu[s]%2==0) {
				System.out.print(shuzu[s]+" ");
			}
		}
    }
}

60:整数去重

import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Set<Integer> set1 = new LinkedHashSet<>();
        for (int i = 0; i < n; i++) {
            set1.add(sc.nextInt());
        }
        for (Integer k : set1) {
            System.out.print(k + " ");
        }
    }
}

61:接水问题

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        int m = cin.nextInt();
        int []dun = new int[n];
        for(int i=0;i<n;i++){
            dun[i]= cin.nextInt();
        }

        int time=0;
        if(m==1){
            for(int i=0;i<n;i++){
                time=time+dun[i];
            }
        } else{
            for(int i=m;i<n;i++){
                int z=0;
                for(int j=1;j<m;j++){
                	if(dun[z]>=dun[j]) {
                		z=j;
                	}
                }
                dun[z]+=dun[i];
            }
            for(int i=0;i<m;i++){
            	if(time<=dun[i]) {
            		time=dun[i];
            	}
            }
        }
        System.out.print(time);
    }
}

62:二进制分类

public class Main {

	public static void main(String[] args) {
		
		int a=0;
		int b=0;
		for(int i=1;i<=1000;i++) {
			String s = Integer.toString(i,2);
			int oneCount = 0;
			
			for(int m=0;m<s.length();m++)
			{
				if(s.charAt(m)=='1')
					oneCount++;
			}	
			if(oneCount>(s.length()-oneCount))
				a++;
			else
				b++;
		}
		System.out.println(a+" "+b);
	}
}

63:画矩形

import java.util.Scanner;
public class Main {
	public static void main(String[]args){
		Scanner cin = new Scanner(System.in);
		int hang=cin.nextInt();
		int lie=cin.nextInt();
		String tuxing = cin.next();
		int heart=cin.nextInt();
		if(heart==0) {
			for(int i=0;i<hang;i++) {
				for(int j=0;j<lie;j++) {
					if(i==0||i==hang-1||j==0||j==lie-1) {
						System.out.print(tuxing);
					}else {
						System.out.print(" ");
					}
				}
				System.out.println();
			}
		}else if(heart==1) {
			for(int i=0;i<hang;i++) {
				for(int j=0;j<lie;j++) {
					System.out.print(tuxing);
				}
				System.out.println();
			}
		}
    }
}

64:敲七

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner cin=new Scanner(System.in);
		int i=cin.nextInt();
		String j;
		for(int p=7;p<=i;p++)
		{ 
			j=String.valueOf(p);
			if(p%7==0){
				System.out.println(p);
			}else if(j.contains("7")){
				System.out.println(j);
			}
		}
	}
 
}

66:等比数列末项计算

import java.util.Scanner;
import java.lang.Math;
public class Main {
	public static void main(String[]args){
		Scanner cin = new Scanner(System.in);
		long a1=cin.nextInt();
		long n=cin.nextInt();
		long sss=(long)Math.pow(2,n-1);
		long an=a1*sss;
		System.out.println(an);	
    }
}

67:矩阵交换行

import java.util.Scanner;
public class Main {
	public static void main(String[]args){
		int [][] erwei = new int[5][5];
		Scanner cin = new Scanner(System.in);
		int c=0;
		int d=0;
		int B=0;
		while(c<5){
			while(d<5){
				erwei[c][d]=cin.nextInt();
				d++;
				}
			d=0;
			c++;
		}
		int n = cin.nextInt();
		int m = cin.nextInt();
		int s=hanshu(erwei,n,m);
		if(s==0) {
			System.out.println("error");
		}else if(s==1) {
			c=0;
			d=0;
			while(c<5){
				while(d<5){
					System.out.print("   "+erwei[c][d]);
					d++;
					}
				System.out.println();
				d=0;
				c++;
			}			
		}
	}
	static int hanshu(int shuzu[][], int n1,int m1) {
		int [] yiwei = new int[5];
		if (!(n1 >= 0 && n1 <= 4 && m1 >= 0 && m1 <= 4)) {
            return 0;
        }else {
	    	for (int i=0;i<5;i++) {
				yiwei[i]=shuzu[n1][i];
			}
			for(int j=0;j<5;j++) {
				shuzu[n1][j]=shuzu[m1][j];
			}
			for(int e=0;e<5;e++) {
				shuzu[m1][e]=yiwei[e];
			}
			return 1;
	    }
    }
}
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[][] a = new int[5][5];
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                a[i][j] = sc.nextInt();
            }
        }
        int m = sc.nextInt();
        int n = sc.nextInt();
        if (!(m >= 0 && m <= 4 && n >= 0 && n <= 4)) {
            System.out.println("error");
        } else {
            for (int k = 0; k < 5; k++) {
                int temp = a[m][k];
                a[m][k] = a[n][k];
                a[n][k] = temp;
            }
            for (int i = 0; i < 5; i++) {
                for (int j = 0; j < 5; j++) {
                    System.out.printf("%4d", a[i][j]);
                }
                System.out.println();
            }
        }
    }
 
}

68:字符串hash

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		Set<String> set1 = new HashSet<String>();		
		for(int i=0;i<n;i++){
			String m = cin.next();
			set1.add(m);
		}
		System.out.println(set1.size());
    }
}
//了解下另一种解题思路就行,此方法会超时
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		List<String> list = new ArrayList <String>();
		int sum=0;
		for(int i=0;i<n;i++){
			String m = cin.next();
			if(list.contains(m) == false){
				list.add(m);
				sum++;
			}
		}
		System.out.println(sum);
    }
}

69:蛇形填充数组

import java.util.Scanner;
class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n=cin.nextInt();
		int zxzx=1;
		int a[][]=new int[n][n];
		for(int i=0;i<=2*n-2;i++){
	    	for(int j=i;j>=0;j--){
				if(j<n&&i-j<n){
					if(i%2!=0)	 	               
						a[i-j][j]=zxzx++;
	            	else
	                	a[j][i-j]=zxzx++;
	        	}
	    	}
		}		
		for (int m = 0; m < n; m++) {
			for (int d = 0; d <n; d++) {
				System.out.print(a[m][d]+" ");
			}
			System.out.println();
		}
	}

}

70:反反复复

import java.util.Scanner;
class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n=cin.nextInt();
		String mo=cin.next();
		int length=mo.length();
		int hang = (int)Math.ceil(length/n);
		char[][] shuzu=new char[hang][n];
		char[][] shuzu1=new char[hang][n];
		char [] yiwei=mo.toCharArray();
		int zzz=0;
		for (int i = 0; i < hang; i++) {
			for (int j = 0; j < n; j++) {
				shuzu[i][j]=yiwei[zzz];
				zzz++;
			}
		}
		
		for(int i=0;i<hang;i++) {
			if(i%2==0) {
				for(int j=0;j<n;j++) {
					shuzu1[i][j]=shuzu[i][j];
				}
			}else if(i%2!=0) {
				int m=0;
				for(int j=n-1;j>=0;j--) {
					shuzu1[i][m]=shuzu[i][j];
					m++;
				}
			}
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < hang; j++) {
				System.out.print(shuzu1[j][i]);
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值