3、任何一个自然数m的立方均可写成m个连续奇数之和。例如:

 1^3=1

 2^3=3+5

 3^3=7+9+11

 4^3=13+15+17+19

编程实现:输入一自然数n,求组成n^3的n个连续奇数。

4、由键盘输入一个自然数N(1≤N≤9),要求程序在屏幕上输出如下图形。

N=1时:        N=3时:       N=4时:

  1            11111       1111111

               12221       1222221

               12321       1233321

               12221       1234321

               11111       1233321

                           1222221

                           1111111

  注:应保证N在图形中只出现一次,且在中心。



1 #include <iostream>
2 #include <cstring>
3 #include <cmath>
4 using namespace std;
5 //通过数学公式可以推出起始位置
6 int main()
7 {
8 int i,j,k;
9 int m;
10 cin>>m;
11 int ans = m*m - m + 1;
12 cout<<ans;
13 for(i=1; i<m; i++)
14 {
15 ans += 2;
16 cout<<" "<<ans;
17 }
18 while(1);
19 return 0;
20 }



1 #include <iostream>
2 #include <cstring>
3 #include <cmath>
4 using namespace std;
5
6 int main()
7 {
8 int i,j,k;
9 int N;
10 int a[20][20];
11 while(cin>>N)//2*n - 1维数组
12 {
13 memset(a,0,sizeof(a));
14 int ans = 2*N - 1;
15 for(i=0; i<N; i++)
16 {
17 //加上等号是为了最中间的数不是0
18 for(j=i; j<=ans-1-i; j++)
19 a[i][j] = i+1;
20 for(j=i; j<=ans-1-i; j++)
21 a[j][ans-i-1] = i+1;
22 for(j=ans-i-1; j>=i; j--)
23 a[ans-i-1][j] = i+1;
24 for(j=ans-i-1; j>=i; j--)
25 a[j][i] = i+1;
26
27 }
28
29 for(i=0; i<ans; i++)
30 {
31 cout<<a[i][0];
32 for(j=1; j<ans; j++)
33 cout<<" "<<a[i][j];
34 cout<<endl;
35 }
36 }
37 //while(1);
38 return 0;
39
40 }