Give the Height and Width of a Wave to print the Sine wave pattern
Examples:
Input : wave_height=5
wave_length=10
Output :
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Approach:
First, check the row and column where the elements are needed to be printed. Then, use nested for loops to print the elements in the corresponding order. Separate loops are kept to keep track of the wave_height and wave_length.
C++
#include <bits/stdc++.h>
using namespace std;
void printSinWave( int wave_height,
int wave_length)
{
int is = 1, os = 2;
for ( int i = 1; i <= wave_height; i++)
{
for ( int j = 1; j <= wave_length; j++)
{
for ( int k = 1; k <= os; k++)
{
cout << " " ;
}
cout << "0" ;
for ( int k = 1; k <= is; k++)
cout << " " ;
cout << "0" ;
for ( int k = 1; k <= os; k++)
cout << " " ;
cout << " " ;
}
os = (i + 1 != wave_height);
is = (i + 1 != wave_height) ? 3 : 5;
cout << "\n" ;
}
}
int main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
return 0;
}
|
C
#include <stdio.h>
void printSinWave( int wave_height, int wave_length)
{
int is = 1, os = 2;
for ( int i = 1; i <= wave_height; i++) {
for ( int j = 1; j <= wave_length; j++) {
for ( int k = 1; k <= os; k++) {
printf ( " " );
}
printf ( "0" );
for ( int k = 1; k <= is; k++)
printf ( " " );
printf ( "0" );
for ( int k = 1; k <= os; k++)
printf ( " " );
printf ( " " );
}
os = (i + 1 != wave_height);
is = (i + 1 != wave_height) ? 3 : 5;
printf ( "\n" );
}
}
int main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
return 0;
}
|
Java
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int is = 1 , os = 2 ;
for ( int i = 1 ;
i <= wave_height; i++)
{
for ( int j = 1 ;
j <= wave_length; j++)
{
for ( int k = 1 ; k <= os; k++)
{
System.out.printf( " " );
}
System.out.printf( "0" );
for ( int k = 1 ; k <= is; k++)
System.out.printf( " " );
System.out.printf( "0" );
for ( int k = 1 ; k <= os; k++)
System.out.printf( " " );
System.out.printf( " " );
}
os = (i + 1 != wave_height) ? 1 : 0 ;
is = (i + 1 != wave_height) ? 3 : 5 ;
System.out.printf( "\n" );
}
}
public static void main(String []args)
{
int wave_height = 5 , wave_length = 10 ;
printSinWave(wave_height, wave_length);
}
}
|
Python3
def printSinWave(wave_height, wave_length):
Is = 1
os = 2
for i in range ( 1 , wave_height + 1 ):
for j in range ( 1 , wave_length + 1 ):
for k in range ( 1 , os + 1 ):
print (end = " " )
print ( "0" , end = "")
for k in range ( 1 , Is + 1 ):
print (end = " " )
print ( "0" , end = "")
for k in range ( 1 , os + 1 ):
print (end = " " )
print (end = " " )
if (i + 1 ! = wave_height):
os = 1
else :
os = 0
if (i + 1 ! = wave_height):
Is = 3
else :
Is = 5
print ()
wave_height, wave_length = 5 , 10
printSinWave(wave_height, wave_length)
|
C#
using System;
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int Is = 1, os = 2;
for ( int i = 1;
i <= wave_height; i++)
{
for ( int j = 1;
j <= wave_length; j++)
{
for ( int k = 1; k <= os; k++)
{
Console.Write( " " );
}
Console.Write( "0" );
for ( int k = 1; k <= Is; k++)
Console.Write( " " );
Console.Write( "0" );
for ( int k = 1; k <= os; k++)
Console.Write( " " );
Console.Write( " " );
}
os = (i + 1 != wave_height) ? 1 : 0;
Is = (i + 1 != wave_height) ? 3 : 5;
Console.Write( "\n" );
}
}
public static void Main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
}
}
|
Javascript
<script>
function printSinWave(wave_height, wave_length)
{
var is = 1,
os = 2;
for ( var i = 1; i <= wave_height; i++)
{
for ( var j = 1; j <= wave_length; j++)
{
for ( var k = 1; k <= os; k++)
{
document.write( " " );
}
document.write( "0" );
for ( var k = 1; k <= is; k++)
document.write( " " );
document.write( "0" );
for ( var k = 1; k <= os; k++)
document.write( " " );
document.write( " " );
}
os = i + 1 != wave_height;
is = i + 1 != wave_height ? 3 : 5;
document.write( "<br>" );
}
}
var wave_height = 5,
wave_length = 10;
printSinWave(wave_height, wave_length);
</script>
|
Output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Time complexity: O(h*l), Here h and l are wave height and wave length respectively.
Auxiliary space: O(1), As constant extra space is used.
How to print a sin wave of letters?
Input : wave_height=5
wave_length=10
Output :
E F O P Y Z I J S T C D M N W X G H Q R
D G N Q X A H K R U B E L O V Y F I P S
C H M R W B G L Q V A F K P U Z E J O T
B I L S V C F M P W Z G J Q T A D K N U
A J K T U D E N O X Y H I R S B C L M V
The approach is the same as above, now instead of using a single element, we use all of the 26 English alphabets in Upper_Case.
C++
#include <stdio.h>
void printSinWave( int wave_height, int wave_length)
{
int is = 1, os = 2;
int inc = 1;
int jump = (wave_height * 3) - (wave_height + 1);
int ch = 'A' + wave_height - 1;
for ( int i = 1; i <= wave_height; i++) {
for ( int j = 1; j <= wave_length; j++) {
for ( int k = 1; k <= os; k++)
printf ( " " );
printf ( "%c" , ch);
for ( int k = 1; k <= is; k++)
printf ( " " );
ch += inc;
if (ch > 'Z' )
ch = ch - 26;
printf ( "%c" , ch);
for ( int k = 1; k <= os; k++)
printf ( " " );
printf ( " " );
ch += jump;
if (ch > 'Z' )
ch = ch - 26;
}
os = (i + 1 != wave_height);
is = (i + 1 != wave_height) ? 3 : 5;
ch = 'A' + wave_height - i - 1;
inc = inc + 2;
jump -= 2;
printf ( "\n" );
}
}
int main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
return 0;
}
|
Java
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int is = 1 , os = 2 ;
int inc = 1 ;
int jump = (wave_height * 3 ) -
(wave_height + 1 );
int ch = 'A' + wave_height - 1 ;
for ( int i = 1 ; i <= wave_height; i++)
{
for ( int j = 1 ; j <= wave_length; j++)
{
for ( int k = 1 ; k <= os; k++)
System.out.printf( " " );
System.out.printf( "%c" , ch);
for ( int k = 1 ; k <= is; k++)
System.out.printf( " " );
ch += inc;
if (ch > 'Z' )
ch = ch - 26 ;
System.out.printf( "%c" , ch);
for ( int k = 1 ; k <= os; k++)
System.out.printf( " " );
System.out.printf( " " );
ch += jump;
if (ch > 'Z' )
ch = ch - 26 ;
}
os = (i + 1 != wave_height) ? 1 : 0 ;
is = (i + 1 != wave_height) ? 3 : 5 ;
ch = 'A' + wave_height - i - 1 ;
inc = inc + 2 ;
jump -= 2 ;
System.out.printf( "\n" );
}
}
public static void main(String[] args)
{
int wave_height = 5 , wave_length = 10 ;
printSinWave(wave_height, wave_length);
}
}
|
Python3
def printSinWave(wave_height, wave_length):
Is = 1
os = 2
inc = 1
jump = (wave_height * 3 ) - (wave_height + 1 )
ch = ord ( 'A' ) + wave_height - 1
for i in range ( 1 , wave_height + 1 ):
for j in range ( 1 , wave_length + 1 ):
for k in range ( 1 , os + 1 ):
print (end = " " )
print ( chr (ch), end = "")
for k in range ( 1 , Is + 1 ):
print (end = " " )
ch + = inc
if (ch > ord ( 'Z' )):
ch = ch - 26
print ( chr (ch), end = "")
for k in range ( 1 , os + 1 ):
print (end = " " )
print (end = " " )
ch + = jump
if (ch > ord ( 'Z' )):
ch = ch - 26
if (i + 1 ! = wave_height):
os = 1
else :
os = 0
if (i + 1 ! = wave_height):
Is = 3
else :
Is = 5
ch = ord ( 'A' ) + wave_height - i - 1
inc = inc + 2
jump - = 2
print ()
wave_height = 5
wave_length = 10
printSinWave(wave_height, wave_length)
|
C#
using System;
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int iS = 1, os = 2;
int inc = 1;
int jump = (wave_height * 3) -
(wave_height + 1);
int ch = 'A' + wave_height - 1;
for ( int i = 1; i <= wave_height; i++)
{
for ( int j = 1; j <= wave_length; j++)
{
for ( int k = 1; k <= os; k++)
Console.Write( " " );
Console.Write( "{0}" , ( char )ch);
for ( int k = 1; k <= iS; k++)
Console.Write( " " );
ch += inc;
if (ch > 'Z' )
ch = ch - 26;
Console.Write( "{0}" , ( char )ch);
for ( int k = 1; k <= os; k++)
Console.Write( " " );
Console.Write( " " );
ch += jump;
if (ch > 'Z' )
ch = ch - 26;
}
os = (i + 1 != wave_height) ? 1 : 0;
iS = (i + 1 != wave_height) ? 3 : 5;
ch = 'A' + wave_height - i - 1;
inc = inc + 2;
jump -= 2;
Console.Write( "\n" );
}
}
public static void Main(String[] args)
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
}
}
|
Javascript
<script>
function printSinWave(wave_height,wave_length)
{
let is = 1, os = 2;
let inc = 1;
let jump = (wave_height * 3) -
(wave_height + 1);
let ch = 'A' .charCodeAt(0) + wave_height - 1;
for (let i = 1; i <= wave_height; i++)
{
for (let j = 1; j <= wave_length; j++)
{
for (let k = 1; k <= os; k++)
document.write( "  " );
document.write(String.fromCharCode(ch));
for (let k = 1; k <= is; k++)
document.write( "  " );
ch += inc;
if (ch > 'Z' .charCodeAt(0))
ch = ch - 26;
document.write(String.fromCharCode(ch));
for (let k = 1; k <= os; k++)
document.write( "  " );
document.write( "  " );
ch += jump;
if (ch > 'Z' .charCodeAt(0))
ch = ch - 26;
}
os = (i + 1 != wave_height) ? 1 : 0;
is = (i + 1 != wave_height) ? 3 : 5;
ch = 'A' .charCodeAt(0) + wave_height - i - 1;
inc = inc + 2;
jump -= 2;
document.write( "<br>" );
}
}
let wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
</script>
|
Time complexity: O(h*w) where h and w are wave height and wave width respectively
Auxiliary space: O(1) as it is using constant space for variables
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 :
13 Mar, 2023
Like Article
Save Article