赞
踩
问题描述:
有a、b、c、d四个0-9的未知整数,组成两个四位数,分别是abcd、cadb;求使得两个四位数之和等于9012的所有解
思路:
代码实现:
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); } } } } } } }
问题描述:
接收n组数,针对每一组进行判断,若互为两位的反序数之和与原数之和互为反序数,则输出;若n组数中不存在这种数组,输出none
反序数:所谓反序数,即有这样成对的数,其特点是其中一个数的个数字排列顺序完全颠倒过来,就变成另一个数,如102和201,36和63等,简单的理解就是顺序相反的两个数,我们把这种成对的数互称为反序数。
解题思路
代码实现:
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
问题描述:
购买礼物,,商品A:150元, B:100元,C: 50元, D:50元;合计消费200元,且每种商品购买的数量不作要求,求共有多少种购买方案。
解题思路
代码实现:
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年真题)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。