題目1164:旋轉矩陣

來源:互聯網
上載者:User

標籤:online judge   九度   c++   

題目描述:

任意輸入兩個9階以下矩陣,要求判斷第二個是否是第一個的旋轉矩陣,如果是,輸出旋轉角度(0、90、180、270),如果不是,輸出-1。
要求先輸入矩陣階數,然後輸入兩個矩陣,每行兩個數之間可以用任意個空格分隔。行之間用斷行符號分隔,兩個矩陣間用任意的斷行符號分隔。

輸入:

輸入有多組資料。
每組資料第一行輸入n(1<=n<=9),從第二行開始輸入兩個n階矩陣。

輸出:

判斷第二個是否是第一個的旋轉矩陣,如果是,輸出旋轉角度(0、90、180、270),如果不是,輸出-1。

如果旋轉角度的結果有多個,則輸出最小的那個。

範例輸入:
31 2 34 5 67 8 97 4 18 5 29 6 3
範例輸出:
90


C++代碼:

#include<iostream>using namespace std; bool f0();bool f180();bool f90();bool f270();     int a[9][9],b[9][9];    int i,j;    int n;int main(){     while(cin>>n)    {        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                cin>>a[i][j];            }//for        }//for        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                cin>>b[i][j];            }//for        }//for        if(f0())            cout<<0<<endl;        else if(f90())            cout<<90<<endl;        else if(f180())            cout<<180<<endl;        else if(f270())            cout<<270<<endl;        else            cout<<-1<<endl;    }//while    return 1;}//main bool f0()    {        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                if(a[i][j]!=b[i][j])                    return false;            }        }        return true;    }//f0    bool f90()    {        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                if(a[i][j]!=b[j][n-i-1])                    return false;            }        }        return true;    }//f90    bool f180()    {        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                if(a[i][j]!=b[n-i-1][n-j-1])                    return false;            }        }        return true;    }//f180    bool f270()    {        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                if(a[i][j]!=b[n-j-1][i])                    return false;            }        }        return true;    }/**************************************************************    Problem: 1164    User: Carvin    Language: C++    Result: Accepted    Time:0 ms    Memory:1520 kb****************************************************************/



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

題目1164:旋轉矩陣

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.