Skip to main content

Tiling problem using dynamic programming

Here given code implementation process.

// C Program
// Tiling problem dynamic programming
#include <stdio.h>

void findResult(int n)
{
    if(n <= 0)
    {
        return ;
    }
    int dp[n+1];
    // Set initial values
    dp[0] = 0; 
    dp[1] = 1;

    // Calualte result
    for(int i=2; i<= n;++i)
    {
        dp[i]  = dp[i-1] + dp[i-2];
    }
    // Display given value
    printf("\n Given  : %d", n);
    // Display calculated result
    printf("\n Result : %d",dp[n]);
}
int main()
{
    
    // Test case
    findResult(7);
    findResult(3);
    return 0;
}

Output

 Given  : 7
 Result : 13
 Given  : 3
 Result : 2
// Java program for
// Tiling problem dynamic programming
public class TilingProblem
{
	public void findResult(int n)
	{
		if (n <= 0)
		{
			return;
		}
		int[] dp = new int[n + 1];
		// Set initial values
		dp[0] = 0;
		dp[1] = 1;
		// Calualte result
		for (int i = 2; i <= n; ++i)
		{
			dp[i] = dp[i - 1] + dp[i - 2];
		}
		// Display given value
		System.out.print("\n Given : " + n);
		// Display calculated result
		System.out.print("\n Result : " + dp[n]);
	}
	public static void main(String[] args)
	{
		TilingProblem task = new TilingProblem();
		// Test
		task.findResult(7);
		task.findResult(3);
	}
}

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
// Include header file
#include <iostream>
using namespace std;

// C++ program for
// Tiling problem dynamic programming

class TilingProblem
{
	public: void findResult(int n)
	{
		if (n <= 0)
		{
			return;
		}
		int dp[n + 1];
		// Set initial values
		dp[0] = 0;
		dp[1] = 1;
		// Calualte result
		for (int i = 2; i <= n; ++i)
		{
			dp[i] = dp[i - 1] + dp[i - 2];
		}
		// Display given value
		cout << "\n Given : " << n;
		// Display calculated result
		cout << "\n Result : " << dp[n];
	}
};
int main()
{
	TilingProblem *task = new TilingProblem();
	// Test
	task->findResult(7);
	task->findResult(3);
	return 0;
}

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
// Include namespace system
using System;
// Csharp program for
// Tiling problem dynamic programming
public class TilingProblem
{
	public void findResult(int n)
	{
		if (n <= 0)
		{
			return;
		}
		int[] dp = new int[n + 1];
		// Set initial values
		dp[0] = 0;
		dp[1] = 1;
		// Calualte result
		for (int i = 2; i <= n; ++i)
		{
			dp[i] = dp[i - 1] + dp[i - 2];
		}
		// Display given value
		Console.Write("\n Given : " + n);
		// Display calculated result
		Console.Write("\n Result : " + dp[n]);
	}
	public static void Main(String[] args)
	{
		TilingProblem task = new TilingProblem();
		// Test
		task.findResult(7);
		task.findResult(3);
	}
}

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
package main
import "fmt"
// Go program for
// Tiling problem dynamic programming

func findResult(n int) {
	if n <= 0 {
		return
	}
	var dp = make([] int, n + 1)
	// Set initial values
	dp[0] = 0
	dp[1] = 1
	// Calualte result
	for i := 2 ; i <= n ; i++ {
		dp[i] = dp[i - 1] + dp[i - 2]
	}
	// Display given value
	fmt.Print("\n Given : ", n)
	// Display calculated result
	fmt.Print("\n Result : ", dp[n])
}
func main() {
	// Test
	findResult(7)
	findResult(3)
}

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
<?php
// Php program for
// Tiling problem dynamic programming
class TilingProblem
{
	public	function findResult($n)
	{
		if ($n <= 0)
		{
			return;
		}
		$dp = array_fill(0, $n + 1, 0);
		// Set initial values
		$dp[0] = 0;
		$dp[1] = 1;
		// Calualte result
		for ($i = 2; $i <= $n; ++$i)
		{
			$dp[$i] = $dp[$i - 1] + $dp[$i - 2];
		}
		// Display given value
		echo("\n Given : ".$n);
		// Display calculated result
		echo("\n Result : ".$dp[$n]);
	}
}

function main()
{
	$task = new TilingProblem();
	// Test
	$task->findResult(7);
	$task->findResult(3);
}
main();

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
// Node JS program for
// Tiling problem dynamic programming
class TilingProblem
{
	findResult(n)
	{
		if (n <= 0)
		{
			return;
		}
		var dp = Array(n + 1).fill(0);
		// Set initial values
		dp[0] = 0;
		dp[1] = 1;
		// Calualte result
		for (var i = 2; i <= n; ++i)
		{
			dp[i] = dp[i - 1] + dp[i - 2];
		}
		// Display given value
		process.stdout.write("\n Given : " + n);
		// Display calculated result
		process.stdout.write("\n Result : " + dp[n]);
	}
}

function main()
{
	var task = new TilingProblem();
	// Test
	task.findResult(7);
	task.findResult(3);
}
main();

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
#  Python 3 program for
#  Tiling problem dynamic programming
class TilingProblem :
	def findResult(self, n) :
		if (n <= 0) :
			return
		
		dp = [0] * (n + 1)
		#  Set initial values
		dp[0] = 0
		dp[1] = 1
		i = 2
		#  Calualte result
		while (i <= n) :
			dp[i] = dp[i - 1] + dp[i - 2]
			i += 1
		
		#  Display given value
		print("\n Given : ", n, end = "")
		#  Display calculated result
		print("\n Result : ", dp[n], end = "")
	

def main() :
	task = TilingProblem()
	#  Test
	task.findResult(7)
	task.findResult(3)

if __name__ == "__main__": main()

Output

 Given :  7
 Result :  13
 Given :  3
 Result :  2
#  Ruby program for
#  Tiling problem dynamic programming
class TilingProblem 
	def findResult(n) 
		if (n <= 0) 
			return
		end

		dp = Array.new(n + 1) {0}
		#  Set initial values
		dp[0] = 0
		dp[1] = 1
		i = 2
		#  Calualte result
		while (i <= n) 
			dp[i] = dp[i - 1] + dp[i - 2]
			i += 1
		end

		#  Display given value
		print("\n Given : ", n)
		#  Display calculated result
		print("\n Result : ", dp[n])
	end

end

def main() 
	task = TilingProblem.new()
	#  Test
	task.findResult(7)
	task.findResult(3)
end

main()

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
// Scala program for
// Tiling problem dynamic programming
class TilingProblem()
{
	def findResult(n: Int): Unit = {
		if (n <= 0)
		{
			return;
		}
		var dp: Array[Int] = Array.fill[Int](n + 1)(0);
		// Set initial values
		dp(0) = 0;
		dp(1) = 1;
		var i: Int = 2;
		// Calualte result
		while (i <= n)
		{
			dp(i) = dp(i - 1) + dp(i - 2);
			i += 1;
		}
		// Display given value
		print("\n Given : " + n);
		// Display calculated result
		print("\n Result : " + dp(n));
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: TilingProblem = new TilingProblem();
		// Test
		task.findResult(7);
		task.findResult(3);
	}
}

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2
// Swift 4 program for
// Tiling problem dynamic programming
class TilingProblem
{
	func findResult(_ n: Int)
	{
		if (n <= 0)
		{
			return;
		}
		var dp: [Int] = Array(repeating: 0, count: n + 1);
		// Set initial values
		dp[0] = 0;
		dp[1] = 1;
		var i: Int = 2;
		// Calualte result
		while (i <= n)
		{
			dp[i] = dp[i - 1] + dp[i - 2];
			i += 1;
		}
		// Display given value
		print("\n Given : ", n, terminator: "");
		// Display calculated result
		print("\n Result : ", dp[n], terminator: "");
	}
}
func main()
{
	let task: TilingProblem = TilingProblem();
	// Test
	task.findResult(7);
	task.findResult(3);
}
main();

Output

 Given :  7
 Result :  13
 Given :  3
 Result :  2
// Kotlin program for
// Tiling problem dynamic programming
class TilingProblem
{
	fun findResult(n: Int): Unit
	{
		if (n <= 0)
		{
			return;
		}
		val dp: Array < Int > = Array(n + 1)
		{
			0
		};
		// Set initial values
		dp[0] = 0;
		dp[1] = 1;
		var i: Int = 2;
		// Calualte result
		while (i <= n)
		{
			dp[i] = dp[i - 1] + dp[i - 2];
			i += 1;
		}
		// Display given value
		print("\n Given : " + n);
		// Display calculated result
		print("\n Result : " + dp[n]);
	}
}
fun main(args: Array < String > ): Unit
{
	val task: TilingProblem = TilingProblem();
	// Test
	task.findResult(7);
	task.findResult(3);
}

Output

 Given : 7
 Result : 13
 Given : 3
 Result : 2




Comment

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