Java基础练手题目

import java.util.*;

class day3{
		public static void main(String[] args){
	
	        //System.out.println(getMoney(310));
			
			//getRabbit(20);
			
			//printSu(1001);
			
			//getScore();
			
			
		/*	int[][] arrs = getArrs(7,5);
			System.out.println("\n交换位置前的数组是:");
			printArrs(arrs);
			
			changeArr(arrs);
			
			System.out.println("交换位置后的数组是:");
			printArrs(arrs);
			
		*/
		   
		   
		    testNextDate(2012,12,5,70);
	
		}	
		/*
		   方法作用:判断是否为闰年,如果为闰年则返回true
		   参数:int 
		   返回值:boolean
		*/
		public static boolean isRun(int year){
			if(year%4==0&&year%400!=0){
				return true;
			}else{
				return false;
			}
		}
		
		/*
		   方法作用:获得当前年月的天数
		   参数:int ,int
		   返回值:int
		*/
		public static int getDays(int year,int month){
			int days = 0;
			switch(month){
				case 1:
				case 3:
				case 5:
				case 7:
				case 8:
				case 10:
				case 12: days=31;
				     break;
					 
				case 2: days = isRun(year)? 29 :28;
				     break;
			    
				case 4:
				case 6:
				case 9:
				case 11: days=30;
				    break;
			}
			return days;
			
		}
		
		/*
		   方法作用:获得当前年月日的下一天,nextDay问题
		   参数:int,int,int
		   返回值:ArrayList<String>
		*/
		public static ArrayList<String> nextDate(int nowYear,int nowMonth,int nowDay){
			ArrayList<String> list = new ArrayList<String>();
			if(nowMonth>0&&nowMonth<13&&nowDay>0&&nowDay<=getDays(nowYear,nowMonth)){
				int nextDay;
				int nextMonth;
				int nextYear;
				if(nowDay ==getDays(nowYear,nowMonth)){
					if(nowMonth==12){
						nextYear=nowYear+1;
						nextMonth=1;
						nextDay=1;
					}else{
						nextYear = nowYear;
						nextMonth = nowMonth+1;
						nextDay = 1;
					}
					
				}else{
					nextYear=nowYear;
					nextMonth=nowMonth;
					nextDay=nowDay+1;
				}
				list.add(nextYear+"");
				list.add(nextMonth+"");
				list.add(nextDay+"");
			}else{
				list.add("日期格式错误");
			}
			return list;
		}
		
		
		/*
		   方法作用:将方法nextDate()的输出值转化为int数组
		   参数:ArrayList<String>
		   返回值:int[]
		*/
		public static int[] getNum(ArrayList<String> arr){
			int[] num = new int[3];
			num[0]=Integer.parseInt(arr.get(0));
			num[1]=Integer.parseInt(arr.get(1));
			num[2]=Integer.parseInt(arr.get(2));
			return num;
		}
		
		/*
		   方法作用:测试nextDate()方法
		   参数:int,int,int,int
		   返回值:void
		*/
		public static void testNextDate(int year,int month,int day,int count){
		   int[] num = {year,month,day};
		   ArrayList<String> date = new ArrayList<String>();
		   for(int i=0;i<count;i++){
			   date =nextDate(num[0],num[1],num[2]);
			   System.out.println(date);
			   num =getNum(date);
		   }
			
		}
		
		/*
		   方法作用:计算出租车费
		   参数:int
		   返回值:double
		*/
		public static double getMoney(int num){
			
			int more=0;
			if(num<=3000){
				return 8;
			}else{
				more=((num-3000)/500)+1;
				return 8+more*1.2;
			}
			
		}
		
		/*
		   方法作用:计算N个月后的兔子对数,不死神兔问题
		   参数:int
		   返回值:int[]
		*/
		public static int[] getRabbit(int num){
			int[] arr = new int[num];
			arr[0]=1;
			arr[1]=1;
			for(int i=2;i<arr.length;i++){
				arr[i]=arr[i-2]+arr[i-1];
			}
			System.out.println("第"+num+"个月兔子对数为:"+arr[num-1]);
			return arr;
		}
		
		/*
		   方法作用:判断输入数是否为素数
		   参数:int
		   返回值:int[]
		*/
		public static boolean isSu(int num){
			for(int i=2;i<num;i++){
				if(num%i==0){
					return false;
				}
				
			}
			return true;
		}
		
		/*
		   方法作用:打印2-N的素数
		   参数:int
		   返回值:void
		*/
		public static void printSu(int num){
			for(int i=2;i<num;i++){
				if(isSu(i)==true){
					System.out.println(i);
				}
			}
		}
		
		/*
		   方法作用:随机生成0-100(包含边界)的x*y二维数组
		   参数:int,int
		   返回值:int[][]
		*/
		public static int[][] getArrs(int x,int y){
			int[][] arr = new int[x][y];
			for(int i=0;i<x;i++){
				for(int j=0;j<y;j++){
					arr[i][j]=(int)Math.round(Math.random()*100);
				}
			}
			return arr;
		}
		
		/*
		   方法作用:计算并输出二维数组的每一列的平均值
		   参数:int[][]
		   返回值:int[]
		*/	
		public static int[] getAvg(int[][] num){
			int[] avg = new int[num[0].length];
			for(int j=0;j<num[0].length;j++){
			    for(int i=0;i<num.length;i++){
					 avg[j]+=num[i][j];
				}
				avg[j]/=num.length;
				System.out.print(avg[j]+"\t\t");
			}
			return avg;
		}
		
		/*
		   方法作用:打印二维数组
		   参数:int[][]
		   返回值:void
		*/
		public static void printArrs(int[][] arr){
			//System.out.println("core C++\t\tcoreJava\t\tServlet\t\tJSP\t\tEJB");
			for(int i=0;i<arr.length;i++){
				for(int j=0;j<arr[i].length;j++){
					System.out.print(arr[i][j]+"\t");
				}
				System.out.println();
				
			}
		}
		
		/*
		   方法作用:打印二维数组,并计算打印每一行的和、每一列的平均值
		   参数:int[][]
		   返回值:void
		*/
		public static void printArr(int[][] arr){
			//System.out.println("core C++\t\tcoreJava\t\tServlet\t\tJSP\t\tEJB");
			int[] sum=new int[arr.length];
			for(int i=0;i<arr.length;i++){
				for(int j=0;j<arr[i].length;j++){
					System.out.print(arr[i][j]+"\t\t");
					sum[i]+=arr[i][j];
				}
				System.out.print(sum[i]+"\n");
			}
			System.out.println("==========================");
			getAvg(arr);
			
		}
		
	
		
	
		
	    public static void getScore(){
		   int[][] score = getArrs(20,5);
	       printArr(score);
		}
		
		/*
		   方法作用:获取二维数组最大、最小值,打印原位置并交换
		   参数:int[][]
		   返回值:void
		*/
		public static void changeArr(int[][] arr){
			int[] min =new int[3];
			int[] max = new int[3];
			min[0]=max[0]=arr[0][0];
			for(int i=0;i<arr.length;i++){
				for(int j=0;j<arr[i].length;j++){
					if(max[0]<arr[i][j]){
						max[0] = arr[i][j];
						max[1] =i;
						max[2] =j;
					}
					if(min[0]>arr[i][j]){
						min[0]=arr[i][j];
						min[1] =i;
						min[2] =j;
					}
				}
				
			}
			System.out.println("原来最大值是"+max[0]+",位置在["+max[1]+","+max[2]+"]\n"+
			                   "原来最小值是"+min[0]+",位置在["+min[1]+","+min[2]+"]");  
			
	        arr[max[1]][max[2]]=min[0];
			arr[min[1]][min[2]]=max[0];
			
		}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值