Check arithmetic progression in array

Here given code implementation process.

/*
   Java Program
   Check arithmetic progression in array
*/
import java.util.HashSet;
public class Progression
{
	//Function which is display array elements
	public void display(int[] arr, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			System.out.print("   " + arr[i]);
		}
		System.out.print("\n");
	}
	public void aiProgression(int[] arr, int n)
	{
		int i = 0;
		boolean result = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
			HashSet < Integer > record = new HashSet < Integer > ();
			// Use to find first and second smallest element
			int first = Integer.MAX_VALUE;
			int second = Integer.MAX_VALUE;
			// iterate the loop through by array size
			// Find two smallest elements
			for (i = 0; i < n && result == true; i++)
			{
				if (record.contains(arr[i]))
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr[i])
				{
					if (second > first)
					{
						second = first;
					}
					first = arr[i];
				}
				else if (second > arr[i])
				{
					second = arr[i];
				}
				record.add(arr[i]);
			}
			if (first == second)
			{
				result = false;
			}
			else
			{
				int diff = second - first;
              	// Find the differences exist in array or not
				for (int value: record)
				{
					if (value != first && !record.contains(value - diff))
					{
						result = false;
						break;
					}
				}
			}
		}
		display(arr, n);
		if (result == false)
		{
			System.out.print("  No\n");
		}
		else
		{
			System.out.print("  Yes\n");
		}
	}
	public static void main(String[] arg)
	{
		Progression task = new Progression();
		// Define arrays of integer elements
		// first array
		int[] arr1 = {
			8 , 5 , 11 , 20 , 14 , 17
		};
		// second array
		int[] arr2 = {
			6 , 12 , 24 , 0 , 30 , 36 , 42
		};
		// Get the number of elements
		int n = arr1.length;
		// Test Cases
		task.aiProgression(arr1, n);
		n = arr2.length;
		task.aiProgression(arr2, n);
	}
}

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
// Include header file
#include <iostream>
#include <limits.h>
#include <set>

using namespace std;
/*
   C++ Program
   Check arithmetic progression in array
*/
class Progression
{
	public:
		//Function which is display array elements
		void display(int arr[], int n)
		{
			for (int i = 0; i < n; ++i)
			{
				cout << "   " << arr[i];
			}
			cout << "\n";
		}
	void aiProgression(int arr[], int n)
	{
		int i = 0;
		bool result = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
			set < int > record ;
			// Use to find first and second smallest element
			int first = INT_MAX;
			int second = INT_MAX;
			// iterate the loop through by array size
			// Find two smallest elements
			for (i = 0; i < n && result == true; i++)
			{
				if (record.find(arr[i]) != record.end())
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr[i])
				{
					if (second > first)
					{
						second = first;
					}
					first = arr[i];
				}
				else if (second > arr[i])
				{
					second = arr[i];
				}
				record.insert(arr[i]);
			}
			if (first == second)
			{
				result = false;
			}
			else
			{
				int diff = second - first;
				set <int> :: iterator value;
				for (value = record.begin(); value != record.end(); value++)
				{
					if (*value != first && record.find(*value - diff) == record.end())
					{
						result = false;
						break;
					}
				}
			}
		}
		this->display(arr, n);
		if (result == false)
		{
			cout << "  No\n";
		}
		else
		{
			cout << "  Yes\n";
		}
	}
};
int main()
{
	Progression task = Progression();
	// Define arrays of integer elements
	// first array
	int arr1[] = {
		8 , 5 , 11 , 20 , 14 , 17
	};
	// second array
	int arr2[] = {
		6 , 12 , 24 , 0 , 30 , 36 , 42
	};
	// Get the number of elements
	int n = sizeof(arr1) / sizeof(arr1[0]);
	// Test Cases
	task.aiProgression(arr1, n);
	n = sizeof(arr2) / sizeof(arr2[0]);
	task.aiProgression(arr2, n);
	return 0;
}

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
// Include namespace system
using System;
using System.Collections.Generic;
/*
   C# Program
   Check arithmetic progression in array
*/
public class Progression
{
	//Function which is display array elements
	public void display(int[] arr, int n)
	{
		for (int i = 0; i < n; ++i)
		{
			Console.Write("   " + arr[i]);
		}
		Console.Write("\n");
	}
	public void aiProgression(int[] arr, int n)
	{
		int i = 0;
		Boolean result = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
			HashSet < int > record = new HashSet < int > ();
			// Use to find first and second smallest element
			int first  = int.MaxValue;
			int second = int.MaxValue;
			// iterate the loop through by array size
			// Find two smallest elements
			for (i = 0; i < n && result == true; i++)
			{
				if (record.Contains(arr[i]))
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr[i])
				{
					if (second > first)
					{
						second = first;
					}
					first = arr[i];
				}
				else if (second > arr[i])
				{
					second = arr[i];
				}
				record.Add(arr[i]);
			}
			if (first == second)
			{
				result = false;
              
			}
			else
			{
				int diff = second - first;
				foreach(int value in record)
				{
					if (value != first && !record.Contains(value - diff))
					{
						result = false;
                      
						break;
					}
				}
			}
		}
		display(arr, n);
		if (result == false)
		{
			Console.Write("  No\n");
		}
		else
		{
			Console.Write("  Yes\n");
		}
	}
	public static void Main(String[] arg)
	{
		Progression task = new Progression();
		// Define arrays of integer elements
		// first array
		int[] arr1 = {
			8 , 5 , 11 , 20 , 14 , 17
		};
		// second array
		int[] arr2 = {
			6 , 12 , 24 , 0 , 30 , 36 , 42
		};
		// Get the number of elements
		int n = arr1.Length;
		// Test Cases
		task.aiProgression(arr1, n);
		n = arr2.Length;
		task.aiProgression(arr2, n);
	}
}

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
<?php
/*
   Php Program
   Check arithmetic progression in array
*/
class Progression
{
	//Function which is display array elements
	public	function display( & $arr, $n)
	{
		for ($i = 0; $i < $n; ++$i)
		{
			echo "   ". $arr[$i];
		}
		echo "\n";
	}
	public	function aiProgression( & $arr, $n)
	{
		$i = 0;
		$result = true;
		if ($n < 2)
		{
			$result = false;
		}
		else
		{
			// Use to get unique element
			$record = array();
			// Use to find first and second smallest element
			$first = PHP_INT_MAX;
			$second = PHP_INT_MAX;
			// iterate the loop through by array size
			// Find two smallest elements
			for ($i = 0; $i < $n && $result == true; $i++)
			{
				if (in_array($arr[$i], $record, TRUE))
				{
					// When element is repeated
					$result = false;
				}
				else if ($first > $arr[$i])
				{
					if ($second > $first)
					{
						$second = $first;
					}
					$first = $arr[$i];
				}
				else if ($second > $arr[$i])
				{
					$second = $arr[$i];
				}
				$record[] = $arr[$i];
			}
			if ($first == $second)
			{
				$result = false;
			}
			else
			{
				$diff = $second - $first;
				foreach($record as $value)
				{
					if ($value != $first && !in_array($value - $diff, $record, TRUE))
					{
						$result = false;
						break;
					}
				}
			}
		}
		$this->display($arr, $n);
		if ($result == false)
		{
			echo "  No\n";
		}
		else
		{
			echo "  Yes\n";
		}
	}
}

function main()
{
	$task = new Progression();
	// Define arrays of integer elements
	// first array
	$arr1 = array(8, 5, 11, 20, 14, 17);
	// second array
	$arr2 = array(6, 12, 24, 0, 30, 36, 42);
	// Get the number of elements
	$n = count($arr1);
	$task->aiProgression($arr1, $n);
	$n = count($arr2);
	$task->aiProgression($arr2, $n);
}
main();

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
/*
   Node Js Program
   Check arithmetic progression in array
*/
class Progression
{
	//Function which is display array elements
	display(arr, n)
	{
		for (var i = 0; i < n; ++i)
		{
			process.stdout.write("   " + arr[i]);
		}
		process.stdout.write("\n");
	}
	aiProgression(arr, n)
	{
		var i = 0;
		var result = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
			
			var record = new Set();
			// Use to find first and second smallest element
			var first  = Number.MAX_VALUE
			var second = Number.MAX_VALUE;
			// iterate the loop through by array size
			// Find two smallest elements
			for (i = 0; i < n && result == true; i++)
			{
				if (record.has(arr[i]))
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr[i])
				{
					if (second > first)
					{
						second = first;
					}
					first = arr[i];
				}
				else if (second > arr[i])
				{
					second = arr[i];
				}
				record.add(arr[i]);
			}
			if (first == second)
			{
				result = false;
			}
			else
			{
				var diff = second - first;
				for (let value of record)
				{
					if (value != first && !record.has(value - diff))
					{
						result = false;
						break;
					}
				}
			}
		}
		this.display(arr, n);
		if (result == false)
		{
			process.stdout.write("  No\n");
		}
		else
		{
			process.stdout.write("  Yes\n");
		}
	}
}

function main()
{
	var task = new Progression();
	// Define arrays of integer elements
	// first array
	var arr1 = [8, 5, 11, 20, 14, 17];
	// second array
	var arr2 = [6, 12, 24, 0, 30, 36, 42];
	// Get the number of elements
	var n = arr1.length;
	// Test Cases
	task.aiProgression(arr1, n);
	n = arr2.length;
	task.aiProgression(arr2, n);
}
main();

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
import sys
#    Python 3 Program
#    Check arithmetic progression in array

class Progression :
	# Function which is display list elements
	def display(self, arr, n) :
		i = 0
		while (i < n) :
			print("   ", arr[i], end = "")
			i += 1
		
		print(end = "\n")
	
	def aiProgression(self, arr, n) :
		i = 0
		result = True
		if (n < 2) :
			result = False
		else :
			#  Use to get unique element
			record = set()
			#  Use to find first and second smallest element
			first  = sys.maxsize
			second = sys.maxsize
			#  iterate the loop through by list size
			#  Find two smallest elements
			while (i < n and result == True) :
				if (arr[i] in record) :
					#  When element is repeated
					result = False
				
				elif(first > arr[i]) :
					if (second > first) :
						second = first
					
					first = arr[i]
				
				elif(second > arr[i]) :
					second = arr[i]
				
				record.add(arr[i])
				i += 1
			
			if (first == second) :
				result = False
			else :
				diff = second - first
				for value in record :
					if (value != first and not value - diff in record) :
						result = False
						break
					
				
			
		
		self.display(arr, n)
		if (result == False) :
			print("  No")
		else :
			print("  Yes")
		
	

def main() :
	task = Progression()
	#  Define lists of integer elements
	#  first list
	arr1 = [8, 5, 11, 20, 14, 17]
	#  second list
	arr2 = [6, 12, 24, 0, 30, 36, 42]
	#  Get the number of elements
	n = len(arr1)
	#  Test Cases
	task.aiProgression(arr1, n)
	n = len(arr2)
	task.aiProgression(arr2, n)

if __name__ == "__main__": main()

Output

    8    5    11    20    14    17
  Yes
    6    12    24    0    30    36    42
  No
require 'set'

#    Ruby Program
#    Check arithmetic progression in array

class Progression 
	# Function which is display array elements
	def display(arr, n) 
		i = 0
		while (i < n) 
			print("   ", arr[i])
			i += 1
		end

		print("\n")
	end

	def aiProgression(arr, n) 
		i = 0
		result = true
		if (n < 2) 
			result = false
		else 
			#  Use to get unique element
			record = Set[]
			#  Use to find first and second smallest element
			first = (2 ** (0. size * 8 - 2))
			second = (2 ** (0. size * 8 - 2))
			#  iterate the loop through by array size
			#  Find two smallest elements
			while (i < n && result == true) 
				if (record.include?(arr[i])) 
					#  When element is repeated
					result = false
				elsif(first > arr[i]) 
					if (second > first) 
						second = first
					end

					first = arr[i]
				elsif(second > arr[i]) 
					second = arr[i]
				end

				record.add(arr[i])
				i += 1
			end

			if (first == second) 
				result = false
			else 
				diff = second - first
				for value in record do 
					if (value != first && !record.include?(value - diff)) 
						result = false
						break
					end

				end

			end

		end

		self.display(arr, n)
		if (result == false) 
			print("  No\n")
		else 
			print("  Yes\n")
		end

	end

end

def main() 
	task = Progression.new()
	#  Define arrays of integer elements
	#  first array
	arr1 = [8, 5, 11, 20, 14, 17]
	#  second array
	arr2 = [6, 12, 24, 0, 30, 36, 42]
	#  Get the number of elements
	n = arr1.length
	#  Test Cases
	task.aiProgression(arr1, n)
	n = arr2.length
	task.aiProgression(arr2, n)
end

main()

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
import scala.collection.mutable._;
import scala.util.control.Breaks._;
/*
   Scala Program
   Check arithmetic progression in array
*/
class Progression
{
	//Function which is display array elements
	def display(arr: Array[Int], n: Int): Unit = {
		var i: Int = 0;
		while (i < n)
		{
			print("   " + arr(i));
			i += 1;
		}
		print("\n");
	}
	def aiProgression(arr: Array[Int], n: Int): Unit = {
		var i: Int = 0;
		var result: Boolean = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
			var record: Set[Int] = Set();
			// Use to find first and second smallest element
			var first: Int = Integer.MAX_VALUE;
			var second: Int = Integer.MAX_VALUE;
			// iterate the loop through by array size
			// Find two smallest elements
			while (i < n && result == true)
			{
				if (record.contains(arr(i)))
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr(i))
				{
					if (second > first)
					{
						second = first;
					}
					first = arr(i);
				}
				else if (second > arr(i))
				{
					second = arr(i);
				}
				record.add(arr(i));
				i += 1;
			}
			if (first == second)
			{
				result = false;
			}
			else
			{
				var diff: Int = second - first;
				breakable
				{
					for (value <- record)
					{
						if (value != first && !record.contains(value - diff))
						{
							result = false;
							break;
						}
					}
				}
			}
		}
		this.display(arr, n);
		if (result == false)
		{
			print("  No\n");
		}
		else
		{
			print("  Yes\n");
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Progression = new Progression();
		// Define arrays of integer elements
		// first array
		var arr1: Array[Int] = Array(8, 5, 11, 20, 14, 17);
		// second array
		var arr2: Array[Int] = Array(6, 12, 24, 0, 30, 36, 42);
		// Get the number of elements
		var n: Int = arr1.length;
		// Test Cases
		task.aiProgression(arr1, n);
		n = arr2.length;
		task.aiProgression(arr2, n);
	}
}

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No
import Foundation
/*
   Swift 4 Program
   Check arithmetic progression in array
*/
class Progression
{
	//Function which is display array elements
	func display(_ arr: [Int], _ n: Int)
	{
		var i: Int = 0;
		while (i < n)
		{
			print("   ", arr[i], terminator: "");
			i += 1;
		}
		print(terminator: "\n");
	}
	func aiProgression(_ arr: [Int], _ n: Int)
	{
		var i: Int = 0;
		var result: Bool = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
			
			var record = Set<Int>();
			// Use to find first and second smallest element
			var first: Int = Int.max;
			var second: Int = Int.max;
			// iterate the loop through by array size
			// Find two smallest elements
			while (i < n && result == true)
			{
				if (record.contains(arr[i]))
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr[i])
				{
					if (second > first)
					{
						second = first;
					}
					first = arr[i];
				}
				else if (second > arr[i])
				{
					second = arr[i];
				}
				record.insert(arr[i]);
				i += 1;
			}
			if (first == second)
			{
				result = false;
			}
			else
			{
				let diff: Int = second - first;
				for value in record
				{
					if (value  != first && !record.contains(value - diff))
					{
						result = false;
						break;
					}
				}
			}
		}
		self.display(arr, n);
		if (result == false)
		{
			print("  No");
		}
		else
		{
			print("  Yes");
		}
	}
}
func main()
{
	let task: Progression = Progression();
	// Define arrays of integer elements
	// first array
	let arr1: [Int] = [8, 5, 11, 20, 14, 17];
	// second array
	let arr2: [Int] = [6, 12, 24, 0, 30, 36, 42];
	// Get the number of elements
	var n: Int = arr1.count;
	// Test Cases
	task.aiProgression(arr1, n);
	n = arr2.count;
	task.aiProgression(arr2, n);
}
main();

Output

    8    5    11    20    14    17
  Yes
    6    12    24    0    30    36    42
  No
/*
   Kotlin Program
   Check arithmetic progression in array
*/
class Progression
{
	//Function which is display array elements
	fun display(arr: Array < Int > , n: Int): Unit
	{
		var i: Int = 0;
		while (i < n)
		{
			print("   " + arr[i]);
			i += 1;
		}
		print("\n");
	}
	fun aiProgression(arr: Array < Int > , n: Int): Unit
	{
		var i: Int = 0;
		var result: Boolean = true;
		if (n < 2)
		{
			result = false;
		}
		else
		{
			// Use to get unique element
		
			var record: MutableSet <Int> = mutableSetOf <Int> ();
			// Use to find first and second smallest element
			var first: Int = Integer.MAX_VALUE;
			var second: Int = Integer.MAX_VALUE;
			// iterate the loop through by array size
			// Find two smallest elements
			while (i < n && result == true)
			{
				if (record.contains(arr[i]))
				{
					// When element is repeated
					result = false;
				}
				else if (first > arr[i])
				{
					if (second > first)
					{
						second = first;
					}
					first = arr[i];
				}
				else if (second > arr[i])
				{
					second = arr[i];
				}
				record.add(arr[i]);
				i += 1;
			}
			if (first == second)
			{
				result = false;
			}
			else
			{
				var diff: Int = second - first;
				// Find the differences exist in array or not
				for (value in record)
				{
					if (value != first && !record.contains(value - diff))
					{
						result = false;
						break;
					}
				}
			}
		}
		this.display(arr, n);
		if (result == false)
		{
			print("  No\n");
		}
		else
		{
			print("  Yes\n");
		}
	}
}
fun main(args: Array < String > ): Unit
{
	var task: Progression = Progression();
	// Define arrays of integer elements
	// first array
	var arr1: Array < Int > = arrayOf(8, 5, 11, 20, 14, 17);
	// second array
	var arr2: Array < Int > = arrayOf(6, 12, 24, 0, 30, 36, 42);
	// Get the number of elements
	var n: Int = arr1.count();
	// Test Cases
	task.aiProgression(arr1, n);
	n = arr2.count();
	task.aiProgression(arr2, n);
}

Output

   8   5   11   20   14   17
  Yes
   6   12   24   0   30   36   42
  No


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







© 2021, kalkicode.com, All rights reserved