每日编程-20170313

题目:验证尼科彻斯定理,即:任何一个整数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 << '\b';
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 << '\b';
30             }
31         }
32     }
33 }

这个没啥好说的,今天有点着急,挑了个简单的写了一下,能改进的太多了,等回头说。

 

posted @ 2017-03-13 20:30  r088r088  阅读(141)  评论(1)    收藏  举报