当前位置:   article > 正文

西安交通大学915考研--编程题Java代码踩坑(2020年真题)_西安交通大学915真题

西安交通大学915真题

西安交通大学915考研–编程题Java代码踩坑(2020年真题)

2020.1–寻找方程组的解

问题描述:
有a、b、c、d四个0-9的未知整数,组成两个四位数,分别是abcd、cadb;求使得两个四位数之和等于9012的所有解

思路:

  1. 直接用四个for循环暴力求解
  2. 相加和正确的就输出,不正确就跳过
  3. 这里不需要考虑优化,如果有时间可以写时间复杂度、空间复杂度,并给出优化思路的文字描述。

代码实现:

package com.xjtu;

/**
 * @Author: cc雪影
 * @Description:
 */
public class A2020_01 {
    public static void main(String[] args) {
        int num1;
        int num2;
        for (int a = 0; a <= 9; a++) {

            for (int b = 0; b <= 9; b++) {
                for (int c = 0; c <= 9; c++) {
                    for (int d = 0; d <= 9; d++) {
                        num1 = a * 1000 + b * 100 + c * 10 + d;
                        num2 = c * 1000 + a * 100 + d * 10 + b;
                        if (num1 + num2 == 9102) {
                            System.out.println(a + " " + b + " " + c + " " + d);
                        }
                    }
                }
            }
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2020.2–几组数中筛选出反序数

问题描述:
接收n组数,针对每一组进行判断,若互为两位的反序数之和与原数之和互为反序数,则输出;若n组数中不存在这种数组,输出none
反序数:所谓反序数,即有这样成对的数,其特点是其中一个数的个数字排列顺序完全颠倒过来,就变成另一个数,如102和201,36和63等,简单的理解就是顺序相反的两个数,我们把这种成对的数互称为反序数。

解题思路

  1. 对于反序数的求法,可以将整数转换成字符串进行处理
  2. 写一个judge函数,用于判断改组数组是不是符合题目要求
  3. 最后引入isEmpty变量,记录n组数中是否存在满足题意的数组,若不满足,则输出none

代码实现:

package com.xjtu;

import java.util.Scanner;

/**
 * @Author: cc雪影
 * @Description:
 */
public class A2020_02 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入组数 n");
        int n = in.nextInt();
        int arr[][] = new int[n][2];
        for (int i = 0; i < n; i++) {
            arr[i][0] = in.nextInt();
            arr[i][1] = in.nextInt();
        }
        boolean isEmpty = true;
        for (int i = 0; i < arr.length; i++) {
            if (judge(arr[i][0], arr[i][1])) {
                isEmpty = false;
                System.out.println(arr[i][0] + " " + arr[i][1]);
            }
        }
        if (isEmpty) {
            System.out.println("none");
        }
    }

    public static boolean judge(int a, int b) {
        int n1 = reverse(a);
        int n2 = reverse(b);
        int n3 = reverse(a + b);
        return (n1 + n2) == n3;
    }//123 111 321 111 432

    public static int reverse(int number) {
        String s = "";
        String string = Integer.toString(number);
        char[] chars = string.toCharArray();
        for (int i = chars.length - 1; i >= 0; i--) {
            s = s + chars[i];
        }
        return Integer.parseInt(s);
    }
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

输入输出:

请输入组数 n
3
112 754
234 467
123 111
112 754
123 111
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2020.3–商品购买方案(人民币组合问题)

问题描述:
购买礼物,,商品A:150元, B:100元,C: 50元, D:50元;合计消费200元,且每种商品购买的数量不作要求,求共有多少种购买方案。

解题思路

  1. 仿照人民币组合问题,利用动态规划,逐次求出合计200元时的购买方案种类
  2. dp数组初始值设为1,dp[i]意义是,总花费是i元时,购买方案的种类数

代码实现:

package com.xjtu;

/**
 * @Author: cc雪影
 * @Description:
 */
public class A2020_03 {
    public static void main(String[] args) {
        int money = 200;
        int arr[] = {150, 100, 50, 50};

        System.out.println(dpGetresult(200, arr));
    }

    public static int dpGetresult(int money, int price[]) {
        int dp[] = new int[money + 1];
        dp[0] = 1;
        // dp[i]意义是,组建值为 i,方案的种类数
        for (int i = 0; i < price.length; i++) {//依次加入价值为 price[i]的商品
            for (int j = price[i]; j <= money; j++) {//从前往后遍历 dp 数组,更新 dp 数组的值
                dp[j] = dp[j] + dp[j - price[i]];
            }
        }
        return dp[money];
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

输入输出:

11
  • 1

2020年题目结束,这里是传送门:
西安交通大学915考研–编程题Java代码踩坑(2015年真题)
西安交通大学915考研–编程题Java代码踩坑(2016年真题)
西安交通大学915考研–编程题Java代码踩坑(2017年真题)
西安交通大学915考研–编程题Java代码踩坑(2018年真题)
西安交通大学915考研–编程题Java代码踩坑(2019年真题)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/867294
推荐阅读
相关标签
  

闽ICP备14008679号