程序设计经典算法50题java版26-50题

2018年1月13日20:02:42 发表评论 142 views

【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

public class java26 {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入星期几的第一个字母来判断一下是星期几");
		String text = sc.next().toUpperCase();
		if("M".equals(text)){
			System.out.println("是星期一");
		}else if("T".equals(text)){
			System.out.println("请输入第二个字母");
			text = sc.next().toUpperCase();
			if("U".equals(text)){
				System.out.println("是星期二");
				return ;
			}else if("H".equals(text)){
				System.out.println("是星期四");
				return ;
			}else{
				System.out.println("error");
				return ;
			}
		}else if("W".equals(text)){
			System.out.println("是星期三");
		}else if("F".equals(text)){
			System.out.println("是星期五");
		}else if("S".equals(text)){
			System.out.println("请输入第二个字母");
			text = sc.next().toUpperCase();
			if("A".equals(text)){
				System.out.println("是星期六");
				return ;
			}else if("U".equals(text)){
				System.out.println("是星期天");
				return ;
			}else{
				System.out.println("error");
				return ;
			}
		}else{
			System.out.println("error");
		}

	}
}

【程序27】
题目:求100之内的素数

public class java27 {
	public static void main(String[] args) {
		for (int i = 1; i <= 100; i++) {
			if (fun(i)) {
				System.out.println(i);
			}
		}
	}

	private static boolean fun(int i) {
		for (int j = 2; j <= i / 2; j++) {
			if (i % j == 0) {
				return false;
			}
		}
		return true;
	}
}

【程序28】
题目:对10个数进行排序

public class java28 {
	public static void main(String[] args){
		//利用随机数产生10个数
		Random ran = new Random();
		int arr[] = new int[10];
		for(int i=0;i<arr.length;i++){
			arr[i] = ran.nextInt(100);
		}
		//end
		System.out.println("排序前:");
		System.out.println(Arrays.toString(arr));
		Arrays.sort(arr);
		System.out.println("排序后:升序");
		System.out.println(Arrays.toString(arr));
		
	}
}

【程序29】
题目:求一个3*3矩阵对角线元素之和

public class java29 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(new BufferedInputStream(System.in));
		int arr[] = new int[9],sum=0;
		System.out.println("请输入9个数字");
		for(int i=0;i<9;i++){
			arr[i] = sc.nextInt();
		}
		for(int i=0;i<9;i+=2){
			sum +=arr[i];
		}
		System.out.println(sum+arr.length/2+1);
	}

}

【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

public class java30 {
	public static void main(String[] args) {
		// 利用随机数产生10个数
		Random ran = new Random();
		ArrayList<Integer> list = new ArrayList<>();
		for (int i = 0; i < 10; i++) {
			list.add(ran.nextInt(100));
		}
		// end
		Collections.sort(list);
		System.out.println(list);
		// end
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int index = 0;
		for(int i=0;i<list.size();i++){
			if(a>list.get(i)){
				index = i+1;
			}
		}
		list.add(index,a);
		System.out.println(list);
		
	}
}

【程序31】
题目:将一个数组逆序输出。

public class java31 {
	public static void main(String[] args) {
		// 利用随机数产生10个数
		Random ran = new Random();
		int arr[] = new int[10];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = ran.nextInt(100);
		}
		//end
		System.out.println(Arrays.toString(arr));
		for(int i=arr.length-1;i>=0;i--){
			System.out.println(arr[i]);
		}

	}

}

【程序32】
题目:取一个整数a从右端开始的4~7位。

public class java32 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(new BufferedInputStream(System.in));
		System.out.println("输入小于10位大于7位的数");
		int n = sc.nextInt();
		String str = String.valueOf(n);
		if(str.length()>=7&&str.length()<=10){
			String a = str.substring(str.length()-7, str.length()-4+1);
			System.out.println(a);
		}
	}

}

【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)

程序设计经典算法50题java版26-50题

public class java33x {
	public static void main(String[] args) {
		//忘记做了
	}

}

【程序34】
题目:输入3个数a,b,c,按大小顺序输出。

public class java34 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		ArrayList<Integer> list = new ArrayList<>();
		list.add(a);list.add(b);list.add(c);
		Collections.sort(list);
		for(int i=list.size()-1;i>=0;i--){
			System.out.println(list.get(i));
		}
		
	}
}

【程序35】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

public class java35 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		// 利用随机数产生10个数
		Random ran = new Random();
		int arr[] = new int[n];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = ran.nextInt(100);
		}
		//end
		Arrays.sort(arr);
		int temp = arr[0];
		arr[0] = arr[arr.length-1];
		arr[arr.length-1] = temp;
		System.out.println(Arrays.toString(arr));
		
	}

}

【程序36】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

public class java36 {
	public static void main(String[] args) {
		Integer n[] = {1,3,4,5,6,10};
		Integer m[] = {2,4,6,8,10,11};
		List list = new ArrayList(Arrays.asList(m));
		list.addAll(Arrays.asList(n));
		System.out.println(list);
	}

}

【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

public class java37 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(new BufferedInputStream(System.in));
		int n = sc.nextInt();
		boolean b[] = new boolean[n+1];
		for(int i=0;i<=n;i++){
			b[i] = true;
		}
		int num=0;
		while(n>1){
			for(int i=1;i<b.length;i++){
				if(b[i]){
					num++;
					if(num==3){
						num=0;
						b[i] = false;
						n--;
					}
				}
			}
		}
		for(int i=1;i<b.length;i++){
			if(b[i]){
				System.out.println(i);
			}
		}
	}
}

【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

public class java38 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		int lenth = fun(str);
		System.out.println(lenth);
	}
	private static int fun(String str) {
		return str.length();
	}
}

【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)

public class java39 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		if (n % 2 == 0) {
			even(n);
		} else {
			odd(n);
		}
	}

	private static void odd(int n) {
		double sum = 0;
		for(int i=1;i<=n;i+=2){
			sum = sum + 1.0/i;
		}
		System.out.println(sum);
	}

	private static void even(int n) {
		double sum = 0;
		for(int i=2;i<=n;i+=2){
			sum = sum + 1.0/i;
		}
		System.out.println(sum);
	}

	

}

【程序40】
题目:字符串排序。

public class java40 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		System.out.println(fun(str));
	}

	private static String fun(String str) {
		char[] ch = str.toCharArray();
		sort(ch);
		return new String(ch);
	}

	private static void sort(char[] arr) {
		char temp;
		for(int i=1;i<arr.length;i++){
			temp = arr[i];//从第二个元素开始
			int j;
			for(j=i-1;j>=0&&arr[j]>temp;j--){
				arr[j+1]=arr[j];//小temp的元素像后移
			}
			arr[j+1]=temp;//移动完值后把temp插入
		}
	}
}

【程序41】
题目:海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

 

public class java41 {
	public static void main(String[] args) {
		System.out.println(fun(5));
	}
	private static int fun(int i) {
		if(i==1){
			return 6;
		}else{
			return fun(i-1)*5+1;
		}
	}
}

【程序43】
题目:求0—7所能组成的奇数个数。

public class java43 {
	public static void main(String[] args) {
		System.out.println(7*8*8*8*8*8*8*4);
	}
}

【程序44】
题目:一个偶数总能表示为两个素数之和。

public class java44 {
	public static void main(String[] args) {
		for(int i=1;i<=100;i++){
			loop:if(i%2==0){
				for(int j=2;j<i;j++){
					if(fun(j)){
						for(int k=2;k<i;k++){
							if(fun(k)){
								if(i==j+k){
									System.out.println(i);
									break loop;
								}
							}
						}
					}
				}
			}
		}
	}

	private static boolean fun(int j) {
		for(int i=2;i<j/2;i++){
			if(j%i==0){
				return false;
			}
		}
		return true;
	}

}

【程序45】
题目:判断一个素数能被几个9整除

public class java45 {
	//我觉得题有问题,素数都不能整除了怎么判断能被几个9整除
	public static void main(String[] args) {
		for(int i=1;i<=100;i++){
			if(prime(i)){
				if(i%9==0){
					System.out.println(division(i));
				}
			}
		}
	}

	private static int division(int i) {
		if(i%9==0){
			return division(i/9)+1;
		}else{
			return 0;
		}
	}

	private static boolean prime(int a) {
		for(int i=2;i<=Math.sqrt(a);i++){
			if(a%i==0){
				return false;
			}
		}
		return true;
	}
}

【程序46】
题目:两个字符串连接程序

public class java46 {
	public static void main(String[] args) {
		String str1 = "123456";
		String str2 = "654321";
		String str3 = str1 + str2;
		System.out.println(str3);
		
	}
}

【程序47】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

public class java47 {
	public static void main(String[] args) {
		Random ran = new Random();
		int[] arr = new int[7];
		for(int i=0;i<arr.length;i++){
			arr[i] = ran.nextInt(50);
		}
		//end
		for(int i=0;i<arr.length;i++){
			for(int j=0;j<arr[i];j++){
				System.out.print("*");
			}
			System.out.println();
		}
		
	}

}

【程序48】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,
加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,
再将第一位和第四位交换,第二位和第三位交换。

public class java48 {
	public static void main(String[] args) {
		Random ran = new Random();
		int n = ran.nextInt(9999-1000+1)+1000;
		System.out.println(n);
		int a,b,c,d;
		a = n/1000 + 5;
		b = n/100%10 + 5;
		c = n%100/10 + 5;
		d = n%10 + 5;
		
		a = a%10;
		b = b%10;
		c = c%10;
		d = d%10;
		
		int temp = 0 ;
		temp = a;
		a = d;
		d = temp;
		temp = b;
		b = c;
		c = temp;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
	}
}

【程序49】
题目:计算字符串中子串出现的次数

public class java49 {
	public static void main(String[] args) {
		String str1 = "abc";
		String str2 = "abcniabcdaabcyeabc";
		int conut=0;
		while(true){
			int index = str2.indexOf(str1);
			if(index!=-1){
				str2 = str2.substring(index+str1.length());
				conut++;
			}else{
				break;
			}
		}
		System.out.println(conut);
	}

}

【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),
计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件 "stud"中。

public class java50 {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(new BufferedInputStream(System.in));
		String  arr[][] = new String[5][5];
		for(int i=0;i<5;i++){
			System.out.printf("请输入第%d个学生信息:学生号,姓名,三门课成绩,用‘,’号分割\n",i+1);
			String str = sc.next();
			arr[i] = str.split(",");
		}
		float avg=0;
		BufferedWriter writer = new BufferedWriter(new FileWriter("f:\stud.txt"));
		for(int i=0;i<5;i++){
			avg = (Float.valueOf(arr[i][2])
					+Float.valueOf(arr[i][2])
					+Float.valueOf(arr[i][2]))
					/2;
			writer.write(arr[i][1] + "平均成绩:" + avg);
			writer.newLine();
			System.out.println(arr[i][1] + "平均成绩:" + avg);
		}
		writer.flush();
		writer.close();
	}

}

 

 

 

 

 

 

 

 

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的支付宝红包
  • 支付宝红包扫一扫打赏
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: