3 条题解

  • 1
    @ 2023-7-31 15:29:59

    关于对角线上元素的判断,在八皇后问题中也有这样的方法,即: 对于点a[i][j]

    若i==j,则其在“\”对角线上;

    若i+j-1==n,则其在“/”对角线上 (建议大家画图模拟,更容易理解)

    下面是代码实现

    #include<cstdio>
    using namespace std;
    int a[12][12];
    int n;
    int hang,lie,mina;
    int sum1,sum2;//分别表示\和/ 
    int main()
    {
    	scanf("%d",&n);
    	for (int i=1;i<=n;i++)
    	{
    		for (int j=1;j<=n;j++)
    		{
    			scanf("%d",&a[i][j]);
    			if (i==j)
    				sum1+=a[i][j];
    			if (i+j-1==n)
    				sum2+=a[i][j];
    		} 
    	}
    	printf("%d\n%d",sum1,sum2);
    	return 0;
    } 
    
    
    • 0
      @ 2023-10-15 0:04:53

      #include #include using namespace std; int a[1000][1000]; int main() { int n,i,j; int shang=0,xia=0; cin>>n;

      for(int i=1;i<=n;i++)
         for(int j=1;j<=n;j++)
             cin>>a[i][j];
             
      for(int i=1;i<=n;i++)
             {
             	j=i;
             	shang+=a[i][j];
      
      		}   
      cout<<shang<<endl;
             
      for(int i=n;i>=1;i--) 
      
             {
              j=n-i+1;
             	xia+=a[i][j]; 
      	    }
      cout<<xia;
      

      }

      • -7
        @ 2024-9-8 15:55:27

        #include using namespace std; int a[1001][1001]; int main() { int i,j,n,s1=0,s2=0; cin>>n; for(i=1;i<=n;i++) { for(j=1;j<=n;j++)
        { cin>>a[i][j]; } }

        for(i=1;i<=n;i++)
        {
        	s1+=a[i][i];
        	s2+=a[i][n+1-i];
        }
        cout<<s1<<endl<<s2;
        return 0;
        

        }

        • 1

        信息

        ID
        368
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        递交数
        134
        已通过
        68
        上传者