zoukankan      html  css  js  c++  java
  • 输出旋转方形数字图形


    static void Main(string[] args)
            {
    
                int[,] x = new int[25, 25];
                int iCol, iRow, n = 2;
                int v = 1;
                int i0, i1, j0, j;
                i0 = 0; i1 = n - 1;
                for (j = 0; j <= n / 2; j++)
                {
                    j0 = j;
                    for (iCol = i0; iCol <= i1; iCol++) { x[j0, iCol] = v; v++; };         //输出行
                    for (iRow = j0 + 1; iRow <= i1; iRow++) { x[iRow, i1] = v; v++; };     //输出列
                    for (iCol = i1 - 1; iCol >= i0; iCol--) { x[i1, iCol] = v; v++; };      //输出行
                    for (iRow = i1 - 1; iRow >= i0 + 1; iRow--) { x[iRow, i0] = v; v++; };  //输出列
                    i0 = i0 + 1; i1 = i1 - 1;
                }
                int sum = 0;
                for (iCol = 0; iCol < n; iCol++)
                {
                    for (iRow = 0; iRow < n; iRow++)
                    {
                        Console.Write(x[iCol,iRow] + " ");
                        if(iCol+iRow==n-1)sum += x[iRow, iCol];
                    }
                    
                    Console.WriteLine();
                }
                Console.WriteLine(sum);
    
            }

    C语言版:

    #include <stdio.h>
    
    int main()
    {
    	int N;
    	while(scanf("%d",&N)!=EOF)
    	{
    		int a[25][25];
    		int iRow,iColumn,sum=0;
    		int i=0,j=N-1,k,v=1;
    		for(k=0;k<=N/2;k++)
    		{
    			int r=k;
    			for(iColumn=i;iColumn<=j;iColumn++)
    			{
    				a[r][iColumn]=v;
    				v++;
    			}
    			for(iRow=i+1;iRow<=j;iRow++)
    			{
    				a[iRow][j]=v;
    				v++;
    			}
    			for(iColumn=j-1;iColumn>=i;iColumn--)
    			{
    				a[j][iColumn]=v;
    				v++;
    			}
    			for(iRow=j-1;iRow>=i+1;iRow--)
    			{
    				a[iRow][i]=v;
    				v++;
    			}
    			
    			i++;
    			j=j-1;
    		}
    		for(i=0;i<N;i++)
    		{
    			for(j=0;j<N;j++)
    			{
    				printf("%d ",a[i][j]);
    				//if(i+j==N-1)sum+=a[i][j];         //打印对角线和
    			}
    			printf("
    ");
    		}
    	printf("%d
    ",sum);
    	}
    
    	return 0;
    }

    JAVA语言:

           public static void main(String args[])
    	{
    		String strIn="";
    		System.out.println("请输入矩阵的行列数:");
    		InputStreamReader input=new InputStreamReader(System.in);
    		BufferedReader buff=new BufferedReader(input);
    		try
    		{
    			strIn=buff.readLine();
    		}
    		catch (IOException ex)
    		{
    			System.out.println(ex.toString());
    		}
    
    		int istr=Integer.parseInt(strIn);
    		int n=istr;
    		//System.out.println("这是行列数为:"+ n +"螺旋矩阵”);
    		int iInit=1;
    		int array[][]=new int[n][n];
    		int iCondition;
    		if(n%2>0)
    		{
    			iCondition=n/2+1;
    		}
    		else
    		{
    			iCondition=n/2;
    		}
    		for(int i=0;i<iCondition;i++)
    		{
    			for(int j=i;j<n-i;j++)
    			{
    				array[i][j]=iInit;
    				iInit++;
    			}
    			for(int k=i+1;k<n-i;k++)
    			{
    				array[k][n-i-1]=iInit;
    				iInit++;
    			}
    			for(int l=n-i-2;l>=i;l--)
    			{
    				array[n-i-1][l]=iInit;
    				iInit++;
    			}
    			for(int t=n-i-2;t>i;t--)
    			{
    				array[t][i]=iInit;
    				iInit++;
    			}
    
    			for(int m=0;m<n;m++)
    			{
    				for(int j=0;j<n;j++)
    				{
    					System.out.print(array[m][j]+"   ");
    				}
    				System.out.println();
    			}
    		}
    	}



    Console.Write(x[iCol,iRow] + " ");改变输出的行列Console.Write(x[iRow,iCol] + " ");可得出另外一种形式

  • 相关阅读:
    bzoj 2259 [Oibh]新型计算机 ——最短路(建图)
    bzoj 4555 [Tjoi2016&Heoi2016]求和——NTT+第二类斯特林数
    NOIp2018 D2T3 defense——树上倍增
    bzoj 3456 城市规划——分治FFT / 多项式求逆 / 多项式求ln
    洛谷 4721 【模板】分治 FFT——分治FFT / 多项式求逆
    bzoj 3625(CF 438E)The Child and Binary Tree——多项式开方
    洛谷 P3377 模板左偏树
    CF 1016 C —— 思路
    洛谷 P3806 点分治模板
    洛谷 P4149 [ IOI 2011 ] Race —— 点分治
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258717.html
Copyright © 2011-2022 走看看