一、构造C的歪
小歪有两个整数 a 和 b ,他想找到这样一个整数 c ,使得这三个整数在经过排序后能成为一个等差数列。
输入描述:在一行上输入两个整数 a,b 代表已有的数字。
输出描述:在一行上输出一个整数代表你所找到的第三个数字。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int dif = Math.abs(a - b);
int max = a > b ? a : b;
int c = max + dif;
System.out.println(c);
}
}
运行结果

二、构造数独
旺仔哥哥是一位数独爱好者。在本题中,数独被定义为一个 n×n的整数矩阵 B,其中所有元素均为非负整数,并满足:
∙∙矩阵 B 的第 i行所有元素之和等于 k;
∙∙矩阵 B的第 j 列所有元素之和也等于 k。
给定正整数 n 与 k,旺仔哥哥想构造任意一个符合上述条件的数独。请你帮助他完成这一目标;如果不存在这样的矩阵,请你指出无解。
【名词解释】
∙∙数独:数独指的是一个满足 "各行和各列和均为同一个整数 k" 条件的 n×n非负整数矩阵。
输入描述:
在一行上输入两个整数 n,k,分别表示矩阵的阶数和每行(列)元素之和。
输出描述:
输出 n 行,每行 n个整数,表示构造出的矩阵。行内元素以单个空格分隔。保证所有元素都是非负整数,并且矩阵满足题目要求。
如果不存在满足条件的矩阵,只需输出一行一个整数 −1。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
int[][] matrix = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (j == i) matrix[i][j] = k;
else matrix[i][j] = 0;
}
}
for (int[] arr : matrix) {
for (int a : arr) {
System.out.print(a + " ");
}
System.out.println();
}
}
}
运行结果

转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/w_zero_one/article/details/169746969




