w_zero_one头像
算法--构造封面图

算法--构造

一、构造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

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--