第三届蓝桥杯预赛

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 }

 

你可能感兴趣的:(蓝桥杯)