题目:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
输入描述:
输入一个int整数
输出描述:
输出分解后的string
输入例子:
6
输出例子:
31+33+35+37+39+41
解答:
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() 6 { 7 int a; 8 long long b; 9 cin >> a; 10 b = a*a*a; 11 for (auto i = 1; i < b/a; i+=2) 12 { 13 if (a*(i + 2 * (a / 2)) == b && a % 2 == 1) 14 { 15 for (auto j = i; j < i + 2 * a; j += 2) 16 { 17 cout << j << "+"; 18 } 19 cout << ''; 20 } 21 else 22 { 23 if (a*(i + 2 * (a / 2)-1) == b && a % 2 == 0) 24 { 25 for (auto j = i; j < i + 2 * a; j += 2) 26 { 27 cout << j << "+"; 28 } 29 cout << ''; 30 } 31 } 32 } 33 }
这个没啥好说的,今天有点着急,挑了个简单的写了一下,能改进的太多了,等回头说。