// C++ Program to find prefix sum of 2d array
#include <bits/stdc++.h>
using namespace std;
#define R 4
#define C 5
// calculating new array
void prefixSum2D(int a[][C])
{
int psa[R][C];
psa[0][0] = a[0][0];
// Filling first row and first column
for (int i = 1; i < C; i++)
psa[0][i] = psa[0][i - 1] + a[0][i];
for (int i = 1; i < R; i++)
psa[i][0] = psa[i - 1][0] + a[i][0];
// updating the values in the cells
// as per the general formula
for (int i = 1; i < R; i++) {
for (int j = 1; j < C; j++)
// values in the cells of new
// array are updated
psa[i][j] = psa[i - 1][j] + psa[i][j - 1]
- psa[i - 1][j - 1] + a[i][j];
}
// displaying the values of the new array
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++)
cout << psa[i][j] << " ";
cout << "
";
}
}
// driver code
int main()
{
int a[R][C] = { { 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 } };
prefixSum2D(a);
return 0;
}
// Java program to find prefix sum of 2D array
import java.util.*;
class GFG {
// calculating new array
public static void prefixSum2D(int a[][])
{
int R = a.length;
int C = a[0].length;
int psa[][] = new int[R][C];
psa[0][0] = a[0][0];
// Filling first row and first column
for (int i = 1; i < C; i++)
psa[0][i] = psa[0][i - 1] + a[0][i];
for (int i = 1; i < R; i++)
psa[i][0] = psa[i - 1][0] + a[i][0];
// updating the values in the
// cells as per the general formula.
for (int i = 1; i < R; i++)
for (int j = 1; j < C; j++)
// values in the cells of new array
// are updated
psa[i][j] = psa[i - 1][j] + psa[i][j - 1]
- psa[i - 1][j - 1] + a[i][j];
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++)
System.out.print(psa[i][j] + " ");
System.out.println();
}
}
// driver code
public static void main(String[] args)
{
int a[][] = { { 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1 } };
prefixSum2D(a);
}
}
# Python Program to find
# prefix sum of 2d array
R = 4
C = 5
# calculating new array
def prefixSum2D(a) :
global C, R
psa = [[0 for x in range(C)]
for y in range(R)]
psa[0][0] = a[0][0]
# Filling first row
# and first column
for i in range(1, C) :
psa[0][i] = (psa[0][i - 1] +
a[0][i])
for i in range(0, R) :
psa[i][0] = (psa[i - 1][0] +
a[i][0])
# updating the values in
# the cells as per the
# general formula
for i in range(1, R) :
for j in range(1, C) :
# values in the cells of
# new array are updated
psa[i][j] = (psa[i - 1][j] +
psa[i][j - 1] -
psa[i - 1][j - 1] +
a[i][j])
# displaying the values
# of the new array
for i in range(0, R) :
for j in range(0, C) :
print (psa[i][j],
end = " ")
print ()
# Driver Code
a = [[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ]]
prefixSum2D(a)
# This code is contributed by
# Manish Shaw(manishshaw1)
// C# program to find prefix
// sum of 2D array
using System;
class GFG
{
// calculating new array
static void prefixSum2D(int [,]a)
{
int R = a.GetLength(0);
int C = a.GetLength(1);
int [,]psa = new int[R, C];
psa[0, 0] = a[0, 0];
// Filling first row
// and first column
for (int i = 1; i < C; i++)
psa[0, i] = psa[0, i - 1] +
a[0, i];
for (int i = 1; i < R; i++)
psa[i, 0] = psa[i - 1, 0] +
a[i, 0];
// updating the values in the
// cells as per the general formula.
for (int i = 1; i < R; i++)
for (int j = 1; j < C; j++)
// values in the cells of
// new array are updated
psa[i, j] = psa[i - 1, j] +
psa[i, j - 1] -
psa[i - 1, j - 1] +
a[i, j];
for (int i = 0; i < R; i++)
{
for (int j = 0; j < C; j++)
Console.Write(psa[i, j] + " ");
Console.WriteLine();
}
}
// Driver Code
static void Main()
{
int [,]a = new int[,]{{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1}};
prefixSum2D(a);
}
}
// This code is contributed by manishshaw1
<script>
// Javascript program to find prefix sum of 2D array
// calculating new array
function prefixSum2D(a)
{
let R = a.length;
let C = a[0].length;
let psa = new Array(R);
for(let i = 0; i < R; i++)
{
psa[i] = new Array(C);
for(let j = 0; j < C; j++)
psa[i][j] = 0;
}
psa[0][0] = a[0][0];
// Filling first row and first column
for (let i = 1; i < C; i++)
psa[0][i] = psa[0][i - 1] + a[0][i];
for (let i = 1; i < R; i++)
psa[i][0] = psa[i - 1][0] + a[i][0];
// updating the values in the
// cells as per the general formula.
for (let i = 1; i < R; i++)
for (let j = 1; j < C; j++)
// values in the cells of new array
// are updated
psa[i][j] = psa[i - 1][j] + psa[i][j - 1]
- psa[i - 1][j - 1] + a[i][j];
for (let i = 0; i < R; i++) {
for (let j = 0; j < C; j++)
document.write(psa[i][j] + " ");
document.write("<br>");
}
}
// driver code
let a=[[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ]];
prefixSum2D(a);
// This code is contributed by avanitrachhadiya2155
</script>
# Python Program to find
# prefix sum of 2d array
R = 4
C = 5
# calculating new array
def prefixSum2D(a) :
global C, R
psa = [[0 for x in range(C)]
for y in range(R)]
psa[0][0] = a[0][0]
# Filling first row
# and first column
for i in range(1, C) :
psa[0][i] = (psa[0][i - 1] +
a[0][i])
for i in range(0, R) :
psa[i][0] = (psa[i - 1][0] +
a[i][0])
# updating the values in
# the cells as per the
# general formula
for i in range(1, R) :
for j in range(1, C) :
# values in the cells of
# new array are updated
psa[i][j] = (psa[i - 1][j] +
psa[i][j - 1] -
psa[i - 1][j - 1] +
a[i][j])
# displaying the values
# of the new array
for i in range(0, R) :
for j in range(0, C) :
print (psa[i][j],
end = " ")
print ()
# Driver Code
a = [[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 1, 1, 1 ]]
prefixSum2D(a)