Given a matrix of order m*n then the task is to find the frequency of even and odd numbers in the matrix
Examples:
Input : m = 3, n = 3
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
Output : Frequency of odd number = 5
Frequency of even number = 4
Input : m = 3, n = 3
{ 10, 11, 12 },
{ 13, 14, 15 },
{ 16, 17, 18 }
Output : Frequency of odd number = 4
Frequency of even number = 5
CPP
#include <bits/stdc++.h>
using namespace std;
#define MAX 100
void freq( int ar[][MAX], int m, int n)
{
int even = 0, odd = 0;
for ( int i = 0; i < m; ++i) {
for ( int j = 0; j < n; ++j) {
if ((ar[i][j] % 2) == 0)
++even;
else
++odd;
}
}
cout << "Frequency of odd number = " << odd << endl;
cout << "Frequency of even number = " << even << endl;
}
int main()
{
int m = 3, n = 3;
int array[][MAX]
= { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
freq(array, m, n);
return 0;
}
|
Output
Frequency of odd number = 5
Frequency of even number = 4
Time Complexity: O(m*n), Where m is the number of rows and n is the number of columns in the given matrix.
Auxiliary Space: O(1)
Approach: Using Recursive method
C++
#include <bits/stdc++.h>
using namespace std;
#define MAX 100
int even = 0, odd = 0;
void freq( int ar[][MAX], int m, int n, int i, int j) {
if (i == m)
{
cout << "Frequency of odd number = " << odd << endl;
cout << "Frequency of even number = " << even << endl;
return ;
}
if (j == n)
{
freq(ar, m, n, i+1, 0);
return ;
}
if (ar[i][j] & 1)
++odd;
else
++even;
freq(ar, m, n, i, j+1);
}
int main() {
int m = 3, n = 3;
int array[][MAX] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
freq(array, m, n, 0, 0);
return 0;
}
|
Output
Frequency of odd number = 5
Frequency of even number = 4
Time Complexity: O(m*n), Where m is the number of rows and n is the number of columns in the given matrix.
Auxiliary Space: O(m*n) , Each call to the function freq takes O(1) space in the call stack and the number of calls is m*n.
Please refer complete article on Frequencies of even and odd numbers in a matrix for more details!
Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!
Last Updated :
09 Feb, 2023
Like Article
Save Article