0x00 引言
爲獲取一個良好的算法思維,以及不再成爲一個腳本小子,爭取每天一道算法題,培養自己的邏輯思維,溫顧各類型語言語法知識。
題解只寫自己理解的解法,其他解法不再增加。題目與解析均在代碼裏面。
0x01 難度等級
簡單
0x02 代碼
package 簡單; import java.util.Scanner; /* * * * 描述 驗證尼科徹斯定理,即:任何一個整數m的立方都可以寫成m個連續奇數之和。 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 輸入一個正整數m(m≤100),將m的立方寫成m個連續奇數之和的形式輸出。 數據範圍: 1 ≤ � ≤ 100 1≤m≤100 輸入描述: 輸入一個int整數 輸出描述: 輸出分解後的string * 示例1 輸入: 6 * 輸出: m^3=m^a1+m*(m-1) 2與d(公差2約掉了) 6^3=31+33+35+37+39+41 * * */ public class 尼科斯徹定理 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); double a1 = 0; double x = Math.pow(m, 2);//m^3=m^a1+m*(m-1) a1 = x - m + 1;//36-6+1 a1=m^2-m+1 int b = 0; int[] arr = new int[m]; // System.out.println(a1); for (int i = 0; i < m; i++) { b = (int) a1;//31 b += 2 * i;//31 arr[i] = b;//31 if (i == m - 1) {//5 System.out.print(arr[i]);//41就不打印“+號” } else { System.out.print(arr[i] + "+"); } } } }
0x03 算法思想
考查公差d爲2的等差數列的通項求和公式:m設爲項數,先計算處a1,再計算出每一項,一共只有m項。
m^3=m^a1+m*(m-1)