Morgan Stanley Interview Question
Software Engineer / Developers#include <iostream>
using namespace std;
int main()
{
int n=5;
int matrix[5][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl;
}
for(int layer=0;layer<=2;layer++)
{
cout<<endl<<"Layer:"<<layer+1<<endl;
for(int c=layer;c<n-layer;c++)
cout<<matrix[layer][c]<<" ";
for(int c=layer+1;c<n-layer;c++)
cout<<matrix[c][n-layer-1]<<" ";
for(int c=n-layer-2;c>=layer;c--)
cout<<matrix[n-layer-1][c]<<" ";
for(int c=n-layer-2;c>layer;c--)
cout<<matrix[c][layer]<<" ";
}
return 0;
}
#include <iostream>
using namespace std;
#define n 4
int main()
{
int matrix[n][n]={{1,2,3,4},{6,7,8,9},{11,12,13,14},{16,17,18,19}};
for(int layer=0;layer<=int(n/2);layer++)
{
cout<<endl<<"Layer:"<<layer+1<<endl;
for(int c=layer;c<n-layer;c++)
cout<<matrix[layer][c]<<" ";
for(int c=layer+1;c<n-layer;c++)
cout<<matrix[c][n-layer-1]<<" ";
for(int c=n-layer-2;c>=layer;c--)
cout<<matrix[n-layer-1][c]<<" ";
for(int c=n-layer-2;c>layer;c--)
cout<<matrix[c][layer]<<" ";
}
return 0;
}
#include <stdio.h>
#define R 3
#define C 6
void spiralPrint(int m, int n, int a[R][C])
{
int i, k = 0, l = 0;
/* k - starting row index
m - ending row index
l - starting column index
n - ending column index
i - iterator
*/
while (k < m && l < n)
{
/* Print the first row from the remaining rows */
for (i = l; i < n; ++i)
{
printf("%d ", a[k][i]);
}
k++;
/* Print the last column from the remaining columns */
for (i = k; i < m; ++i)
{
printf("%d ", a[i][n-1]);
}
n--;
/* Print the last row from the remaining rows */
if ( k < m)
{
for (i = n-1; i >= l; --i)
{
printf("%d ", a[m-1][i]);
}
m--;
}
/* Print the first column from the remaining columns */
if (l < n)
{
for (i = m-1; i >= k; --i)
{
printf("%d ", a[i][l]);
}
l++;
}
}
}
#include<iostream>
#include<stdio.h>
using namespace std;
void print(int size,int r,int c)
{
if(r==0)
printf("%2d ",(size*size)-1-c);
else if(c==size-1)
printf("%2d ",size*(size-1)-r);
else
print(size-1,(size-1-r),(size-2-c));
}
int main()
{
int n;
while(cin>>n)
{
for(int r=0;r<n;r++,cout<<endl)
{
for(int c=0;c<n;c++)
{
print(n,r,c);
}
}
}
return 0;
}
calling recursion on a very huge set may result int stack overflow...but in the above case this situation should not arise...
- beginner August 08, 2011