Sum of two numbers represented as arrays
Here given code implementation process.
// C program for
// Sum of two numbers represented as arrays
#include <stdio.h>
// Display given digit array
void printData(int num[], int n)
{
for (int i = 0; i < n; ++i)
{
printf(" %d", num[i]);
}
printf("\n");
}
// Finding the sum of two digit arrays
void sum(int num1[], int num2[], int n, int m)
{
// Loop controlling variables
int i = n - 1;
int j = m - 1;
// Define some auxiliary variables
int sum = 0;
int carry = 0;
// Use to collect digit sum value
int result[n];
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = (num1[i] + num2[j] + carry) / 10;
j--;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = (num1[i] + carry) / 10;
}
i--;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum *10) + result[i];
i++;
}
// Display given array
printf("\n Given digit array 1 \n");
printData(num1, n);
printf("\n Given digit array 2 \n");
printData(num2, m);
// Display calculated sum
printf("\n Sum : %d\n", sum);
}
// Handles the request to find sum of two digit array
void findSum(int num1[], int num2[], int n, int m)
{
// Choose longest array
if (n > m)
{
sum(num1, num2, n, m);
}
else
{
sum(num2, num1, m, n);
}
}
int main()
{
// Define single digit arrays
int num1[] = {
9 , 5 , 7 , 2
};
int num2[] = {
9 , 9 , 7 , 8 , 2
};
// Get the digit length
int n = sizeof(num1) / sizeof(num1[0]);
int m = sizeof(num2) / sizeof(num2[0]);
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
findSum(num1, num2, n, m);
return 0;
}
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Java Program
// Sum of two numbers represented as arrays
public class DigitSum
{
// Display given digit array
public void printData(int[] num, int n)
{
for (int i = 0; i < n; ++i)
{
System.out.print(" " + num[i]);
}
System.out.print("\n");
}
// Finding the sum of two digit arrays
public void sum(int[] num1, int[] num2, int n, int m)
{
// Loop controlling variables
int i = n - 1;
int j = m - 1;
// Define some auxiliary variables
int sum = 0;
int carry = 0;
// Use to collect digit sum value
int[] result = new int[n];
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = (num1[i] + num2[j] + carry) / 10;
j--;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = (num1[i] + carry) / 10;
}
i--;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum * 10) + result[i];
i++;
}
// Display given array
System.out.print("\n Given digit array 1 \n");
printData(num1, n);
System.out.print("\n Given digit array 2 \n");
printData(num2, m);
// Display calculated sum
System.out.print("\n Sum : " + sum + "\n");
}
// Handles the request to find sum of two digit array
public void findSum(int[] num1, int[] num2, int n, int m)
{
// Choose longest array
if (n > m)
{
sum(num1, num2, n, m);
}
else
{
sum(num2, num1, m, n);
}
}
public static void main(String[] args)
{
DigitSum task = new DigitSum();
// Define single digit arrays
int[] num1 = {
9 , 5 , 7 , 2
};
int[] num2 = {
9 , 9 , 7 , 8 , 2
};
// Get the digit length
int n = num1.length;
int m = num2.length;
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
}
}
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Include header file
#include <iostream>
using namespace std;
// C++ Program
// Sum of two numbers represented as arrays
class DigitSum
{
public:
// Display given digit array
void printData(int num[], int n)
{
for (int i = 0; i < n; ++i)
{
cout << " " << num[i];
}
cout << "\n";
}
// Finding the sum of two digit arrays
void sum(int num1[], int num2[], int n, int m)
{
// Loop controlling variables
int i = n - 1;
int j = m - 1;
// Define some auxiliary variables
int sum = 0;
int carry = 0;
// Use to collect digit sum value
int *result = new int[n];
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = (num1[i] + num2[j] + carry) / 10;
j--;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = (num1[i] + carry) / 10;
}
i--;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum *10) + result[i];
i++;
}
// Display given array
cout << "\n Given digit array 1 \n";
this->printData(num1, n);
cout << "\n Given digit array 2 \n";
this->printData(num2, m);
// Display calculated sum
cout << "\n Sum : " << sum << "\n";
}
// Handles the request to find sum of two digit array
void findSum(int num1[], int num2[], int n, int m)
{
// Choose longest array
if (n > m)
{
this->sum(num1, num2, n, m);
}
else
{
this->sum(num2, num1, m, n);
}
}
};
int main()
{
DigitSum task = DigitSum();
// Define single digit arrays
int num1[] = {
9 , 5 , 7 , 2
};
int num2[] = {
9 , 9 , 7 , 8 , 2
};
// Get the digit length
int n = sizeof(num1) / sizeof(num1[0]);
int m = sizeof(num2) / sizeof(num2[0]);
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
return 0;
}
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Include namespace system
using System;
// C# Program
// Sum of two numbers represented as arrays
public class DigitSum
{
// Display given digit array
public void printData(int[] num, int n)
{
for (int i = 0; i < n; ++i)
{
Console.Write(" " + num[i]);
}
Console.Write("\n");
}
// Finding the sum of two digit arrays
public void sum(int[] num1, int[] num2, int n, int m)
{
// Loop controlling variables
int i = n - 1;
int j = m - 1;
// Define some auxiliary variables
int sum = 0;
int carry = 0;
// Use to collect digit sum value
int[] result = new int[n];
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = (num1[i] + num2[j] + carry) / 10;
j--;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = (num1[i] + carry) / 10;
}
i--;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum * 10) + result[i];
i++;
}
// Display given array
Console.Write("\n Given digit array 1 \n");
printData(num1, n);
Console.Write("\n Given digit array 2 \n");
printData(num2, m);
// Display calculated sum
Console.Write("\n Sum : " + sum + "\n");
}
// Handles the request to find sum of two digit array
public void findSum(int[] num1, int[] num2, int n, int m)
{
// Choose longest array
if (n > m)
{
sum(num1, num2, n, m);
}
else
{
sum(num2, num1, m, n);
}
}
public static void Main(String[] args)
{
DigitSum task = new DigitSum();
// Define single digit arrays
int[] num1 = {
9 , 5 , 7 , 2
};
int[] num2 = {
9 , 9 , 7 , 8 , 2
};
// Get the digit length
int n = num1.Length;
int m = num2.Length;
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
}
}
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
<?php
// Php Program
// Sum of two numbers represented as arrays
class DigitSum
{
// Display given digit array
public function printData( & $num, $n)
{
for ($i = 0; $i < $n; ++$i)
{
echo " ". $num[$i];
}
echo "\n";
}
// Finding the sum of two digit arrays
public function sum( & $num1, & $num2, $n, $m)
{
// Loop controlling variables
$i = $n - 1;
$j = $m - 1;
// Define some auxiliary variables
$sum = 0;
$carry = 0;
// Use to collect digit sum value
$result = array_fill(0, $n, 0);
// Perform digit sum operation
while ($i >= 0 || $j >= 0)
{
if ($i >= 0 && $j >= 0)
{
$result[$i] = ($num1[$i] + $num2[$j] + $carry) % 10;
$carry = intval(($num1[$i] + $num2[$j] + $carry) / 10);
$j--;
}
else
{
$result[$i] = ($num1[$i] + $carry) % 10;
$carry = intval(($num1[$i] + $carry) / 10);
}
$i--;
}
if ($carry > 0)
{
// When carry exists
$sum = 1;
}
$i = 0;
// Combine resultant sum
while ($i < $n)
{
$sum = ($sum * 10) + $result[$i];
$i++;
}
// Display given array
echo "\n Given digit array 1 \n";
$this->printData($num1, $n);
echo "\n Given digit array 2 \n";
$this->printData($num2, $m);
// Display calculated sum
echo "\n Sum : ". $sum ."\n";
}
// Handles the request to find sum of two digit array
public function findSum( & $num1, & $num2, $n, $m)
{
// Choose longest array
if ($n > $m)
{
$this->sum($num1, $num2, $n, $m);
}
else
{
$this->sum($num2, $num1, $m, $n);
}
}
}
function main()
{
$task = new DigitSum();
// Define single digit arrays
$num1 = array(9, 5, 7, 2);
$num2 = array(9, 9, 7, 8, 2);
// Get the digit length
$n = count($num1);
$m = count($num2);
$task->findSum($num1, $num2, $n, $m);
}
main();
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Node Js Program
// Sum of two numbers represented as arrays
class DigitSum
{
// Display given digit array
printData(num, n)
{
for (var i = 0; i < n; ++i)
{
process.stdout.write(" " + num[i]);
}
process.stdout.write("\n");
}
// Finding the sum of two digit arrays
sum(num1, num2, n, m)
{
// Loop controlling variables
var i = n - 1;
var j = m - 1;
// Define some auxiliary variables
var sum = 0;
var carry = 0;
// Use to collect digit sum value
var result = Array(n).fill(0);
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = parseInt((num1[i] + num2[j] + carry) / 10);
j--;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = parseInt((num1[i] + carry) / 10);
}
i--;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum * 10) + result[i];
i++;
}
// Display given array
process.stdout.write("\n Given digit array 1 \n");
this.printData(num1, n);
process.stdout.write("\n Given digit array 2 \n");
this.printData(num2, m);
// Display calculated sum
process.stdout.write("\n Sum : " + sum + "\n");
}
// Handles the request to find sum of two digit array
findSum(num1, num2, n, m)
{
// Choose longest array
if (n > m)
{
this.sum(num1, num2, n, m);
}
else
{
this.sum(num2, num1, m, n);
}
}
}
function main()
{
var task = new DigitSum();
// Define single digit arrays
var num1 = [9, 5, 7, 2];
var num2 = [9, 9, 7, 8, 2];
// Get the digit length
var n = num1.length;
var m = num2.length;
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
}
main();
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
# Python 3 Program
# Sum of two numbers represented as arrays
class DigitSum :
# Display given digit list
def printData(self, num, n) :
i = 0
while (i < n) :
print(" ", num[i], end = "")
i += 1
print(end = "\n")
# Finding the sum of two digit lists
def sum(self, num1, num2, n, m) :
# Loop controlling variables
i = n - 1
j = m - 1
# Define some auxiliary variables
sum = 0
carry = 0
# Use to collect digit sum value
result = [0] * (n)
# Perform digit sum operation
while (i >= 0 or j >= 0) :
if (i >= 0 and j >= 0) :
result[i] = (num1[i] + num2[j] + carry) % 10
carry = int((num1[i] + num2[j] + carry) / 10)
j -= 1
else :
result[i] = (num1[i] + carry) % 10
carry = int((num1[i] + carry) / 10)
i -= 1
if (carry > 0) :
# When carry exists
sum = 1
i = 0
# Combine resultant sum
while (i < n) :
sum = (sum * 10) + result[i]
i += 1
# Display given list
print("\n Given digit array 1 ")
self.printData(num1, n)
print("\n Given digit array 2 ")
self.printData(num2, m)
# Display calculated sum
print("\n Sum : ", sum )
# Handles the request to find sum of two digit list
def findSum(self, num1, num2, n, m) :
# Choose longest list
if (n > m) :
self.sum(num1, num2, n, m)
else :
self.sum(num2, num1, m, n)
def main() :
task = DigitSum()
# Define single digit lists
num1 = [9, 5, 7, 2]
num2 = [9, 9, 7, 8, 2]
# Get the digit length
n = len(num1)
m = len(num2)
# Test
#
# 1 1 1
# -----------------
# 9, 5, 7, 2
# 9, 9, 7, 8, 2
# -----------------
# 10 9 3 5 4
# -----------------
# O/P : 109354
task.findSum(num1, num2, n, m)
if __name__ == "__main__": main()
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
# Ruby Program
# Sum of two numbers represented as arrays
class DigitSum
# Display given digit array
def printData(num, n)
i = 0
while (i < n)
print(" ", num[i])
i += 1
end
print("\n")
end
# Finding the sum of two digit arrays
def sum(num1, num2, n, m)
# Loop controlling variables
i = n - 1
j = m - 1
# Define some auxiliary variables
sum = 0
carry = 0
# Use to collect digit sum value
result = Array.new(n) {0}
# Perform digit sum operation
while (i >= 0 || j >= 0)
if (i >= 0 && j >= 0)
result[i] = (num1[i] + num2[j] + carry) % 10
carry = (num1[i] + num2[j] + carry) / 10
j -= 1
else
result[i] = (num1[i] + carry) % 10
carry = (num1[i] + carry) / 10
end
i -= 1
end
if (carry > 0)
# When carry exists
sum = 1
end
i = 0
# Combine resultant sum
while (i < n)
sum = (sum * 10) + result[i]
i += 1
end
# Display given array
print("\n Given digit array 1 \n")
self.printData(num1, n)
print("\n Given digit array 2 \n")
self.printData(num2, m)
# Display calculated sum
print("\n Sum : ", sum ,"\n")
end
# Handles the request to find sum of two digit array
def findSum(num1, num2, n, m)
# Choose longest array
if (n > m)
self.sum(num1, num2, n, m)
else
self.sum(num2, num1, m, n)
end
end
end
def main()
task = DigitSum.new()
# Define single digit arrays
num1 = [9, 5, 7, 2]
num2 = [9, 9, 7, 8, 2]
# Get the digit length
n = num1.length
m = num2.length
# Test
#
# 1 1 1
# -----------------
# 9, 5, 7, 2
# 9, 9, 7, 8, 2
# -----------------
# 10 9 3 5 4
# -----------------
# O/P : 109354
task.findSum(num1, num2, n, m)
end
main()
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Scala Program
// Sum of two numbers represented as arrays
class DigitSum
{
// Display given digit array
def printData(num: Array[Int], n: Int): Unit = {
var i: Int = 0;
while (i < n)
{
print(" " + num(i));
i += 1;
}
print("\n");
}
// Finding the sum of two digit arrays
def sum(num1: Array[Int], num2: Array[Int], n: Int, m: Int): Unit = {
// Loop controlling variables
var i: Int = n - 1;
var j: Int = m - 1;
// Define some auxiliary variables
var sum: Int = 0;
var carry: Int = 0;
// Use to collect digit sum value
var result: Array[Int] = Array.fill[Int](n)(0);
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result(i) = (num1(i) + num2(j) + carry) % 10;
carry = ((num1(i) + num2(j) + carry) / 10).toInt;
j -= 1;
}
else
{
result(i) = (num1(i) + carry) % 10;
carry = ((num1(i) + carry) / 10).toInt;
}
i -= 1;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum * 10) + result(i);
i += 1;
}
// Display given array
print("\n Given digit array 1 \n");
this.printData(num1, n);
print("\n Given digit array 2 \n");
this.printData(num2, m);
// Display calculated sum
print("\n Sum : " + sum + "\n");
}
// Handles the request to find sum of two digit array
def findSum(num1: Array[Int], num2: Array[Int], n: Int, m: Int): Unit = {
// Choose longest array
if (n > m)
{
this.sum(num1, num2, n, m);
}
else
{
this.sum(num2, num1, m, n);
}
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: DigitSum = new DigitSum();
// Define single digit arrays
var num1: Array[Int] = Array(9, 5, 7, 2);
var num2: Array[Int] = Array(9, 9, 7, 8, 2);
// Get the digit length
var n: Int = num1.length;
var m: Int = num2.length;
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
}
}
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Swift 4 Program
// Sum of two numbers represented as arrays
class DigitSum
{
// Display given digit array
func printData(_ num: [Int], _ n: Int)
{
var i: Int = 0;
while (i < n)
{
print(" ", num[i], terminator: "");
i += 1;
}
print(terminator: "\n");
}
// Finding the sum of two digit arrays
func sum(_ num1: [Int], _ num2: [Int], _ n: Int, _ m: Int)
{
// Loop controlling variables
var i: Int = n - 1;
var j: Int = m - 1;
// Define some auxiliary variables
var sum: Int = 0;
var carry: Int = 0;
// Use to collect digit sum value
var result: [Int] = Array(repeating: 0, count: n);
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = (num1[i] + num2[j] + carry) / 10;
j -= 1;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = (num1[i] + carry) / 10;
}
i -= 1;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum * 10) + result[i];
i += 1;
}
// Display given array
print("\n Given digit array 1 ");
self.printData(num1, n);
print("\n Given digit array 2 ");
self.printData(num2, m);
// Display calculated sum
print("\n Sum : ", sum );
}
// Handles the request to find sum of two digit array
func findSum(_ num1: [Int], _ num2: [Int], _ n: Int, _ m: Int)
{
// Choose longest array
if (n > m)
{
self.sum(num1, num2, n, m);
}
else
{
self.sum(num2, num1, m, n);
}
}
}
func main()
{
let task: DigitSum = DigitSum();
// Define single digit arrays
let num1: [Int] = [9, 5, 7, 2];
let num2: [Int] = [9, 9, 7, 8, 2];
// Get the digit length
let n: Int = num1.count;
let m: Int = num2.count;
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
}
main();
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354
// Kotlin Program
// Sum of two numbers represented as arrays
class DigitSum
{
// Display given digit array
fun printData(num: Array < Int > , n: Int): Unit
{
var i: Int = 0;
while (i < n)
{
print(" " + num[i]);
i += 1;
}
print("\n");
}
// Finding the sum of two digit arrays
fun sum(num1: Array < Int > , num2: Array < Int > , n: Int, m: Int): Unit
{
// Loop controlling variables
var i: Int = n - 1;
var j: Int = m - 1;
// Define some auxiliary variables
var sum: Int = 0;
var carry: Int = 0;
// Use to collect digit sum value
var result: Array < Int > = Array(n)
{
0
};
// Perform digit sum operation
while (i >= 0 || j >= 0)
{
if (i >= 0 && j >= 0)
{
result[i] = (num1[i] + num2[j] + carry) % 10;
carry = (num1[i] + num2[j] + carry) / 10;
j -= 1;
}
else
{
result[i] = (num1[i] + carry) % 10;
carry = (num1[i] + carry) / 10;
}
i -= 1;
}
if (carry > 0)
{
// When carry exists
sum = 1;
}
i = 0;
// Combine resultant sum
while (i < n)
{
sum = (sum * 10) + result[i];
i += 1;
}
// Display given array
print("\n Given digit array 1 \n");
this.printData(num1, n);
print("\n Given digit array 2 \n");
this.printData(num2, m);
// Display calculated sum
print("\n Sum : " + sum + "\n");
}
// Handles the request to find sum of two digit array
fun findSum(num1: Array < Int > , num2: Array < Int > , n: Int, m: Int): Unit
{
// Choose longest array
if (n > m)
{
this.sum(num1, num2, n, m);
}
else
{
this.sum(num2, num1, m, n);
}
}
}
fun main(args: Array < String > ): Unit
{
var task: DigitSum = DigitSum();
// Define single digit arrays
var num1: Array < Int > = arrayOf(9, 5, 7, 2);
var num2: Array < Int > = arrayOf(9, 9, 7, 8, 2);
// Get the digit length
var n: Int = num1.count();
var m: Int = num2.count();
// Test
/*
1 1 1
-----------------
9, 5, 7, 2
9, 9, 7, 8, 2
-----------------
10 9 3 5 4
-----------------
O/P : 109354
*/
task.findSum(num1, num2, n, m);
}
Output
Given digit array 1
9 9 7 8 2
Given digit array 2
9 5 7 2
Sum : 109354

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment