阿里巴巴筆試中的 兩道編程題

    時間:2024-09-19 23:38:40 綜合指導 我要投稿
    • 相關推薦

    阿里巴巴筆試中的 兩道編程題

      兩道編程題:

    阿里巴巴筆試中的 兩道編程題

      1請用最少的額外空間將一個M*N的矩陣旋轉90度,寫出算法描述和類c語言程序;

      2完成如下函數,給定分子和分母,輸出其小數表示形式,循環節用[]表示,例如給出分子:13,分母19,輸出為:0.[13]

      參考解答:

      只需要一個空間即可(下標變量i),考慮的是順時針旋轉

      #include "iostream.h"

      const int M=5;

      const int N=3;

      void main()

      {

      int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

      int c[N][M]={0};

      int i;//只需一個空間i。

      for(i=0;i

      c[i%N][M-1-i/N]=a[i/N][i%N];//就這句話

      for(i=0;i

      {

      if(i%N == 0)

      cout<

      cout<

      }

      cout<

      for(i=0;i

      {

      if(i%M == 0)

      cout<

      cout<

      }

      cout<

      }

      最省空間的矩陣轉置

      #include "stdafx.h"

      #include

      using namespace std;   int main()

      {

      const int M = 5;

      const int N = 3;

      int a[M][N] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

      int* p = a[0];

      //轉90度后的矩陣設為b[N][M],則 b[j] = *(p + i + j*N)

      for(int i = 0; i < N; i++)

      {

      for(int j =0; j < M; j++)

      {

      cout<< *(p + i + j*N) <<",";

      }

      cout<

      }

      system("pause");

      return 0;

      }

      這是一個Matrix Transposition In place(M!=N) 問題。1972年 MIT的一個教授給出了到目前為止的最佳解法。不過好像沒有樓上這些人說的那么簡單,其中還包含了一個定理。大家可以去搜論文,嘿嘿.

      Key word:Matrix Transposition In place

      transposition, matrix operations, permutation,primitive roots, number theory


    【阿里巴巴筆試中的 兩道編程題】相關文章:

    阿里巴巴筆試題201502-19

    阿里巴巴校招筆試題11-29

    阿里巴巴校招筆試題目11-29

    阿里巴巴南京數據分析筆試題11-21

    阿里巴巴校招筆試題,試題分享02-25

    2015阿里巴巴運營專員崗位筆試題11-13

    平安筆試群毆題11-19

    聯想筆試真題09-26

    求問kp經典verbal里的兩道筆試題,求賜教!11-21

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      先锋资源手机在线 | 一级夜理论片久久 | 开心五月激情中文在线观看 | 午夜福利免费区在线观看 | 亚洲国产97在线精品一区 | 亚洲人成伊人成综合网中文强 |