- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Place N^2 numbers in matrix such that every row has an equal sum in C++
In this problem, we are given an integer value N. our task is to print numbers within the range (1, N2) in a 2D matrix of size NxN in such a way that the sum elements of each row are equal.
Let’s take an example to understand the problem,
Input − N = 4
Output −
1 6 11 16 2 7 12 13 3 8 9 14 4 5 10 15
Sum of elements in each row is 34
To solve this method, we need to place each element in the matrix in such a way that the total in each row is equal. For this, we will use the greedy approach and row by row to place the correct elements in place making the sum equal.
For this, we will initially feed all elements in the matrix and then create a new matrix that has elements of the previous matrix using this formula,
resultMat[i][j] = prevMat[j][(i+j)%n]
Example
The below code shows the implementation of our solution,
#include<iostream> using namespace std; int main(){ int n = 4,i,j; cout<<"Matrix of size : "<<n<<" in which sum of elements of all rows is equal is :\n"; int prevMat[n][n], resultMat[n][n] ; int c = 1; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) prevMat[i][j] = c++; } for (i = 0; i < n; i++) { for (<) { resultMat[i][j] = prevMat[j][((i+j)%n)]; } } for (i = 0;i<n;i++) { for (j=0; j<n; j++) { cout<<resultMat[i][j]<<"\t"; } cout<<endl; } }
Output
Matrix of size : 4 in which sum of elements of all rows is equal is : 1 6 11 16 2 7 12 13 3 8 9 14 4 5 10 15
Advertisements