华为机试-076-简单-HJ76.尼科彻斯定理
一、描述
验证尼科彻斯定理,即:任何一个整数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 ≤ m ≤ 100
进阶:时间复杂度:O(m),空间复杂度:O(1)
1.1、输入描述
输入一个int整数
1.2、输出描述
输出分解后的string
二、示例
2.1、示例1
输入:
6
输出:
31+33+35+37+39+41
三、答案(java)
3.1、方法一
package com.tzq.hwod;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt();
long sum = (long) Math.pow(n, 3);
int a1 = (int) sum / n - (n - 1);
StringBuilder sb = new StringBuilder(Integer.toString(a1));
for (int i = 1; i < n; i++) {
a1 = a1 + 2;
sb.append("+");
sb.append(a1);
}
System.out.println(sb);
}
}
}
四、答案(python 3)
4.1、方法一
#!/usr/bin/python
# -*- coding: UTF-8 -*-
while True:
try:
m = int(input())
l = [i for i in range(m*(m-1)+1,m*(m+1)) if i%2 !=0]
print('+'.join(map(str,l)))
except:
break