第三届蓝桥杯预赛

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 }
原文地址:https://www.cnblogs.com/hxsyl/p/3000933.html