加法变乘法(蓝桥杯)
生活随笔
收集整理的這篇文章主要介紹了
加法变乘法(蓝桥杯)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
我們都知道:1+2+3+ … + 49 = 1225
現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015
比如:
1+2+3+…+10*11+12+…+27*28+29+…+49 = 2015
就是符合要求的答案。
請你尋找另外一個可能的答案,并把位置靠前的那個乘號左邊的數字提交(對于示例,就是提交10)。
注意:需要你提交的是一個整數,不要填寫任何多余的內容。
解題思路:
兩個不相鄰的加號 限制條件:(j-i)!=2 第一部分:1+2+3+...+i(9) 第二部分:(i+1)*(i+2) 第三部分:i+3+...+j(26) 第四部分:(j+1)*(j+2) 第五部分:j+3+...+49 判斷之和是否等于2015代碼:
package com.tjrac_java_2;import java.util.Set; import java.util.TreeSet; import java.util.Vector;public class TT { public static void main(String[] args) {int ans=0;for(int i=1;i<=49;i++){//極限 47*48for (int j = i; j<=49 ; j++) {if((j-i)!=2){//不相鄰if(check(i,j)==2015){System.out.println("i:"+(i+1)+" j:"+(j+1));}}}}System.out.println(check(9,26));//測試}private static int check(int i, int j) {int s = 0;s=sum(1,i)+(i+1)*(i+2)+sum(i+3,j)+(j+1)*(j+2)+sum(j+3,49);return s;}private static int sum(int l,int r) {return (l+r)*(r-l+1)/2;} }總結
以上是生活随笔為你收集整理的加法变乘法(蓝桥杯)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost stacktrace堆栈打印
- 下一篇: 合并流