概述
西安交通大学915考研–编程题Java代码踩坑(2020年真题)
目录
- 西安交通大学915考研--编程题Java代码踩坑(2020年真题)
- 2020.1--寻找方程组的解
- 2020.2--几组数中筛选出反序数
- 2020.3--商品购买方案(人民币组合问题)
2020.1–寻找方程组的解
问题描述:
有a、b、c、d四个0-9的未知整数,组成两个四位数,分别是abcd、cadb;求使得两个四位数之和等于9012的所有解
思路:
- 直接用四个for循环暴力求解
- 相加和正确的就输出,不正确就跳过
- 这里不需要考虑优化,如果有时间可以写时间复杂度、空间复杂度,并给出优化思路的文字描述。
代码实现:
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);
}
}
}
}
}
}
}
2020.2–几组数中筛选出反序数
问题描述:
接收n组数,针对每一组进行判断,若互为两位的反序数之和与原数之和互为反序数,则输出;若n组数中不存在这种数组,输出none
反序数:所谓反序数,即有这样成对的数,其特点是其中一个数的个数字排列顺序完全颠倒过来,就变成另一个数,如102和201,36和63等,简单的理解就是顺序相反的两个数,我们把这种成对的数互称为反序数。
解题思路
- 对于反序数的求法,可以将整数转换成字符串进行处理
- 写一个judge函数,用于判断改组数组是不是符合题目要求
- 最后引入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);
}
}
输入输出:
请输入组数 n
3
112 754
234 467
123 111
112 754
123 111
2020.3–商品购买方案(人民币组合问题)
问题描述:
购买礼物,,商品A:150元, B:100元,C: 50元, D:50元;合计消费200元,且每种商品购买的数量不作要求,求共有多少种购买方案。
解题思路
- 仿照人民币组合问题,利用动态规划,逐次求出合计200元时的购买方案种类
- 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];
}
}
输入输出:
11
2020年题目结束,这里是传送门:
西安交通大学915考研–编程题Java代码踩坑(2015年真题)
西安交通大学915考研–编程题Java代码踩坑(2016年真题)
西安交通大学915考研–编程题Java代码踩坑(2017年真题)
西安交通大学915考研–编程题Java代码踩坑(2018年真题)
西安交通大学915考研–编程题Java代码踩坑(2019年真题)
最后
以上就是壮观滑板为你收集整理的西安交通大学915考研--编程题Java代码踩坑(2020年真题)西安交通大学915考研–编程题Java代码踩坑(2020年真题)的全部内容,希望文章能够帮你解决西安交通大学915考研--编程题Java代码踩坑(2020年真题)西安交通大学915考研–编程题Java代码踩坑(2020年真题)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复