題目要求如下:
加法變乘法
我們都知道:1+2+3+ ... + 49 = 1225
現在要求你把其中兩個不相鄰的加號變成乘號,使得結果爲2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
請你尋找另外一個可能的答案,
並把位置靠前的那個乘號左邊的數字提交(對於示例,就是提交10)。
注意:需要你提交的是一個整數,不要填寫任何多餘的內容。
思路:
1. 說思路其實也沒什麼思路,按照正常的解法一步一步的寫出程序來就OK了。
2. 將1+2+3+ ... + 49其中的兩個“+”變成“*”,用雙重循環來遍歷所有可能出現的結果。
3. 外層循環的變量i代表前一個“*”,內層循環中的j代表後一個“*”,依次遍歷。
4. 用變量tmp來保存將程序中的前一個“+”改變成“*”過後的結果。代碼爲tmp = res = sum-(i+(i-1))+i*(i-1) ,讀者需要仔細理解這句代碼。
5. 用變量res來保存將程序中的後一個“+”改變成“*”過後的結果。代碼爲res = tmp-(j+(j-1))+j*(j-1) 。
6. 然後變量res判斷的值是否爲2015。如果是,則輸出i和對於j的值。(題目中只要求求出前一個“*”所在的位置,即i的值)。
源代碼如下: