这段代码大概的意思.大神…

Android 码拜 6年前 (2015-05-10) 303次浏览 0个评论
               Scanner reader = new Scanner(System.in);
		int n = reader.nextInt();
		int m = reader.nextInt();
		reader.close();
		int count = 0;
		int[][] num = new int[n][m];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				//System.out.println(""+num[i][j]+"");
				num[i][j] = 1;
			}
		}
		for (int i = 0; i < n - 1; i++) {
			for (int j = 0; j < m - 1; j++) {
				Q(num, i + 1, j + 1);
			}
		}
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (num[i][j] == -1) {
					count++;
				}
			}
		}
		System.out.println(count);
	}

	public static void Q(int[][] num, int x, int y) {
		num[x - 1][y - 1] = -num[x][y];
		for (int i = 2;; i++) {
			if (x * i < num.length) {
				num[x * i - 1][y - 1] = -num[x * i - 1][y - 1];
			}
			if (y * i < num[x].length) {
				num[x - 1][y * i - 1] = -num[x - 1][y * i - 1];
			}
			if (x * i < num.length && y * i < num[x].length) {
				num[x * i - 1][y * i - 1] = -num[x * i - 1][y * i - 1];
			}
			if (x * i > num.length && y * i > num[x].length) {
				break;
			}
		}
		return;
	}
有没有人
10分
n要小于m,最后的输出只和n有关,具体在干嘛,不清楚
10分
你用个java程序看吧,因为后台可以输出的比较好看
貌似和矩阵有关

每执行一个方法我就输出一下,用下面的

  public static void printNum(int[][] num){
		for(int i=0;i<num.length;i++){
			for(int j=0;j<num[num.length-1].length;j++){
				System.out.print(num[i][j]);
			}
			System.out.println("");
		}
		System.out.println("\n\n");
	}

——————
我观察输出的感觉
第一个for循环是把这个变为num[n][n]的内容都设为1,n必须小于等于m。n*n矩阵
第二个for循环好奇怪,看几眼貌似没啥规律
第三个for循环是无效的,就是第二个for循环的结果……

10分
貌似是实现一个算法把,具体不知道
10分
随便值代入一些试试看

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这段代码大概的意思.大神…
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!