2015第六届蓝桥杯 07 加法变乘法 (java)

加法变乘法


我们都知道:1+2+3+ ... + 49 = 1225

现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015


比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。


请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。


注意:需要你提交的是一个整数,不要填写任何多余的内容。


运算过程和思路:

1225-(10+11)-(27+28)+(10*11)+(27*28)=2015。

先把要变为乘法的两对数字给减去了,然后再换成乘法进行加起来。


结果: 16

10 11 27 28
16 17 24 25
24 25 16 17
27 28 10 11


代码如下:

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum = 0;
		for(int i=1;i<=49;i++){
			sum += i;
		}
		int temp=0;
		for(int i=1;i<46;i++){    //46 47 48 49
			for(int j=3;j<48;j++){
				temp=sum-i-(i+1)-j-(j+1)+i*(i+1)+j*(j+1);
				if(temp==2015){
					System.out.println(i+" "+(i+1)+" "+j+" "+(j+1));
				}
			}
		}
	}

}

第十六届“蓝桥杯”全国软件和信息技术专业人才大赛中,Java软件开发组是重要的竞赛组别之一,面向研究生、大学A组、B组、C组不同层次的参赛者[^1]。虽然具体的国家赛信息如比赛时间、题目内容、获奖标准等并未在提供的资料中详细列出,但可以从以下几个方面进行分析与推测: 1. **参赛资格与组别划分** Java软件开发组的参赛资格要求选手必须符合对应组别的学历与身份要求,不得弄虚作假。资格审查贯穿报名、竞赛过程中及赛后阶段,一旦发现问题,将取消资格或成绩,并在大赛官网上公示[^2]。 2. **竞赛内容与形式** Java组的国家赛通常会涉及算法设计、程序编写与调试等核心内容,可能包含对常见数据结构与算法的考察,例如排序、查找、动态规划等。此外,根据以往的赛事安排,比赛可能包含编程题、填空题和编程大题,要求选手具备扎实的编程基础和逻辑思维能力。 3. **评分与判卷方式** 竞赛采用机器阅卷加少量人工辅助的方式,选手需要特别注意提交答案的形式。必须仔细阅读题目的要求和示例,不要随意添加不需要的内容,否则可能导致答案被判错误[^2]。 4. **典型题型参考** 虽然第十六届的具体题目尚未公布,但可以参考往届比赛的题型。例如,在软件测试组中,曾涉及对Java类的测试,例如一个`Calculator`类,其中包含加法、减法、乘法和除法的基本运算[^3]。Java国赛的题目可能也会涉及类似的编程任务,但难度更高,可能涉及复杂逻辑处理或性能优化。 5. **备赛建议** - 熟悉常见的算法与数据结构,如排序、查找、图论等。 - 练习历年蓝桥杯真题,尤其是国赛级别的题目。 - 提高代码调试与优化能力,确保代码的正确性和高效性。 - 注意比赛规则,严格按照题目要求提交答案,避免因格式问题失分。 ### 示例代码:Java中的快速排序实现 ```java public class QuickSort { public static void quickSort(int[] arr, int left, int right) { if (left < right) { int pivot = partition(arr, left, right); quickSort(arr, left, pivot - 1); quickSort(arr, pivot + 1, right); } } private static int partition(int[] arr, int left, int right) { int pivot = arr[right]; int i = left - 1; for (int j = left; j < right; j++) { if (arr[j] <= pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, right); return i + 1; } private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void main(String[] args) { int[] arr = {10, 7, 8, 9, 1, 5}; quickSort(arr, 0, arr.length - 1); for (int num : arr) { System.out.print(num + " "); } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值