Codeforces Round #157 (Div. 2) B. Little Elephant and Magic Square

题目:http://codeforces.com/contest/259/problem/B

一个magic square满足每行每列每对角线的和相等

给出一个除去主对角线(main diagonal)的square 求magic square

思路:这题受input sample的影响,一开始傻逼了...以为每个数都小于10...然后就枚举了...然后发现数据的上限是10...

   正解是 设每行每列每对角线的和为sum,magic square中所有数字加起来的和为3*sum;

   所以剩下的数的和为2*sum

#include <iostream>
using namespace std;

int arr[3][3];

int main()
{
    int sum=0;
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cin >> arr[i][j];
            sum+=arr[i][j];
        }
    }
    sum/=2;
    arr[0][0]=sum-arr[0][1]-arr[0][2];
    arr[1][1]=sum-arr[1][0]-arr[1][2];
    arr[2][2]=sum-arr[2][0]-arr[2][1];
    
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cout << arr[i][j]<<" ";
        }
        cout << endl;
    }
    return 0;
}

转载于:https://www.cnblogs.com/danielqiu/archive/2013/01/17/2864597.html

猜你喜欢

转载自blog.csdn.net/weixin_33881140/article/details/93795256