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 }