2018-12-8周末作业

#练习题
##1.题

//	编写一个方法,求整数n的阶乘,例如5的阶乘是1*2*3*4*5。
 
	public static void main(String[] args) {
		Scanner input =new Scanner(System.in);
		System.out.print("输入一个数:");
		int m=sum(input.nextInt());
				
		System.out.println(m);
	}
	
	static int sum(int a) {
		int f=1;
		for(int b=1;b<=a;b++) {
			f *=b;
		}	
			return f;	
	}

1##2.题

/* 在一个有8个整数(18,25,7,36,13,2,89,63) 将数组中的元素逆序存放,
    并拷贝到另一个字符数组中输出,再从小到大排列输出。 */
    
		int[] a = { 18, 25, 7, 36, 13, 2, 89, 63 };
		int[] c = new int[a.length];
		int sum;
		
		for (int b = 0; b < a.length / 2; b++) {
			sum = a[b];
			a[b] = a[a.length - b - 1];
			a[a.length - b - 1] = sum;
		}
		
		for (int i = 0; i < a.length; i++) {
			c[i] = a[i];
		}

		System.out.print(Arrays.toString(a));
		System.out.println();
		
		System.out.print(Arrays.toString(c));
		System.out.println();

		Arrays.sort(a);
		System.out.println(Arrays.toString(a));

#周末作业
##1.

//使用循环输出100,95,90,85,80...5,

		for (int b = 100; b >= 5; b--) {		
			if (b % 5 == 0) {
				System.err.print(b+" ");
			}
		}

##2.

//编程计算1至50中是7的倍数的数值之和

		int sum = 0;
		
		for (int a = 1; a <= 50; a++) {
			if (a % 7 == 0) {
				sum += a;
			}
		}
		System.out.println("1至50中是7的倍数的数值之和是:" + sum);

##3.没输出最大,最小值

// 输入一批整数,输出其中最大值和最小值,输入数字0结束循环,程序运行结束

		Scanner input = new Scanner(System.in);
		int max=Integer.MIN_VALUE;//将最小数赋给max
		int min=Integer.MAX_VALUE;//将最大数赋给min
		while (true) {

			System.out.print("请输入一个整数(输入0结束):");
			int a = input.nextInt();

			if (a == 0) {
				System.out.println("程序结束");
				break;			
			}
			if(max<a) {
				max=a;
			}
			if(min>a) {
				min=a;
			}
		}
		System.out.println("最大值"+max);
		System.out.println("最小值"+min);

##4.

	/* 从键盘输入一位整数,当输入1-7时,显示下面对应的英文星期名缩写, 
			1.MON 2.TUE 3.WED 4.THU 5.FRI 6.SAT 7.SUN
		  	输入其他数字提示用户重新输入,输入0时程序结束 */
		 
		Scanner input = new Scanner(System.in);
		int b = 0;

		while (true) {
			System.out.print("请输入数字1-7(输入0结束)");
			int a = input.nextInt();
			
			switch (a) {
				case 1:
					System.out.println("今天是MON");
					break;
				case 2:
					System.out.println("今天是TUE");
					break;
				case 3:
					System.out.println("今天是WED");
					break;
				case 4:
					System.out.println("今天是THU");
					break;
				case 5:
					System.out.println("今天是FRI");
					break;
				case 6:
					System.out.println("今天是SAT");
					break;
				case 7:
					System.out.println("今天是SUN");
					break;
			}
			if(a==0) {
				System.out.println("程序结束!");
			    break;
			}
		}			
		

##5.

		// 鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几只

		for (int x = 0; x <= 35; x++) {
			for (int y = 0; y <= 35; y++) {
				if (x + y == 35 && x * 2 + y * 4 == 94) {
					System.out.println(x + "只鸡 " + y + "只兔");
				}
			}
		}

##6.

/*开发一个标题为FlipFlop的游戏程序,它从1到100,遇到3的倍数就替换为单词Flip,
	  5的倍数就替换为单词Flop,既为3的倍数又为5的倍数则替换为单词 FlipFlop
	      其余情况下输出当前数字	*/
	      
		System.out.println("\tFlipFlop");
		
		for (int a = 1; a <= 100; a++) {
			if (a % 3 == 0 && a % 5 == 0) {
				System.out.print("FlipFlop" + " ");
				continue;
			} else if (a % 5 == 0) {
				System.out.print("Flop" + " ");
				continue;
			} else if (a % 3 == 0) {
				System.out.print("Flip" + " ");
				continue;
			}
			System.out.print(a + " ");
		}

##7.

/*一共30人,可能包括男人、女人、小孩,他们在一家饭馆吃饭共花了50先令,
	其中每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男、女、小孩各几人*/
				
		int m, w, c;
		for (c = 0; c <= 30; c++) {
			for (w = 0; w <= 30; w++) {
				for (m = 0; m <= 30; m++) {
					if (m + w + c == 30 && m * 3 + w * 2 + c * 1 == 50) {
						System.out.println(m + "个男人  " + w + "个女人  " + c + "个小孩");
					}
				}
			}
		}

##8.
这个程序运行后的结果sum的值为26

		int sum=0,i;
		for(i=1;i<=4;i++) {
			switch(i) {
			case 1:
				sum=sum+2;
			case 2:
				sum=sum+4;
				continue;
			case 3:
				sum=sum+16;
				break;
			}
		}
		System.out.println(sum);

##9.

		// 依次输出五句话,然后将它逆序输出。

		Scanner input = new Scanner(System.in);
		System.out.println("请输入5句话");
		String[] b = new String[5];
		String sum;
		
		for (int i = 0; i < 5; i++) {
			System.out.print("第" + (i + 1) + "句话:");
			b[i] = input.next();
		}
		System.out.println(Arrays.toString(b));
		
		for (int c = 0; c < b.length / 2; c++) {
			sum = b[c];
			b[c] = b[b.length - c - 1];
			b[b.length - c - 1] = sum;
		}
		System.out.println(Arrays.toString(b));

##10.

		/*某百货商场当日消费积分最高的八名顾客,他们的积分分别是:18、25、7、36、13、
	2、89、63,编写程序找出最低的积分及它在数组中的原始位置。*/
		
		int[] a = { 18, 25, 7, 36, 13, 2, 89, 63 };
		int min = a[0];
		int y = 0;

		for (int b = 1; b < a.length; b++) {
			if (min > a[b]) {
				min = a[b];
				y = b;
			}
		}
		System.out.println("积分最低的是:" + min);
		System.out.println(min + "的下标是:" + y);

##11.

/*从键盘输入10个数,合法值为1、2、3,不是这三个数为非法数字,
	编写程序统计每个整数和非法数字的个数。*/
		
		Scanner input = new Scanner(System.in);
		System.out.println("请输入10个数");
		int[] nums = new int[10];
		int j = 0, i = 0, m = 0;

		for (int a = 0; a < nums.length; a++) {
			nums[a] = input.nextInt();

			if (nums[a] == 1) {
				j += 1;
			} else if (nums[a] == 2) {
				i += 2;
			} else if (nums[a] == 3) {
				m += 3;
			}
		}
		System.out.println("输入的10个数为:" + Arrays.toString(nums));
		System.out.println("数字1的个数:" + j / 1);
		System.out.println("数字2的个数:" + i / 2);
		System.out.println("数字3的个数:" + m / 3);
		System.out.println("非法数字的个数:" + (10 - m / 3 - i / 2 - j / 1));

##12.

/*有一个长度为5的数组,要求创建一个新数组newArray[]新数组中元素与原数组的
	元素逆序,并且如果原数组中的元素值小于0在新数组中按0储存*/
		
		Scanner input = new Scanner(System.in);
		int[] a = new int[5];
		int[] newArray = new int[a.length];
		int sum;

		for (int i = 0; i < a.length; i++) {
			a[i] = input.nextInt();
			if (a[i] < 0) {
				a[i] = 0;
			}
			newArray[i] = a[i];
		}
		System.out.println(Arrays.toString(newArray));

		for (int j = 0; j < a.length / 2; j++) {
			sum = a[j];
			newArray[j] = newArray[a.length - j - 1];
			newArray[a.length - j - 1] = sum;
		}
		System.out.println(Arrays.toString(newArray));

猜你喜欢

转载自blog.csdn.net/weixin_43986060/article/details/84893711