1. 程式人生 > 其它 >【藍橋杯省賽JavaB組真題詳解】加法變乘法(2015)

【藍橋杯省賽JavaB組真題詳解】加法變乘法(2015)

技術標籤:藍橋杯JavaB組真題詳解演算法java動態規劃資料結構

正月初二喜氣來,祝大家新年樂開懷

題目描述

加法變乘法
我們都知道:1+2+3+ … + 49 = 1225
現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015

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

請你尋找另外一個可能的答案,並把位置靠前的那個乘號左邊的數字提交(對於示例,就是提交10)。

注意:需要你提交的是一個整數,不要填寫任何多餘的內容。

解題思路

利用雙迴圈的方法
參考程式碼

public class Main {

	public
static void main(String[] args) { int t=0,r=0,sum=1225; for (int i = 1; i < 47; i++) { t = sum - (i + i+1) + i*(i+1);//算出第一個乘號 for (int j = i+2; j < 49; j++) { r = t - (j+j+1) + j*(j+1);//第二個乘號 if(r==2015) System.out.println(i+","+j); } } } }

輸出結果
在這裡插入圖片描述

答案
16