Last active
January 29, 2020 06:11
-
-
Save shankar524/7240f58a1bfd5d31ded6bfbee650bfdf to your computer and use it in GitHub Desktop.
Following program will print pallindrome tree from provided input number by asking user input.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Following program will print pallindrome tree | |
from provided input number by asking user input. | |
A sample program outpust like:- | |
Enter any number: | |
9 | |
1 | |
212 | |
32123 | |
4321234 | |
543212345 | |
65432123456 | |
7654321234567 | |
876543212345678 | |
98765432123456789 | |
*/ | |
package main | |
import ( | |
"fmt" | |
"strconv" | |
) | |
func main() { | |
var input int | |
fmt.Println("Enter any number:") | |
fmt.Scanf("%d", &input) | |
if input > 0 && input < 10 { | |
printSeries(input) | |
} else { | |
fmt.Println("Sorry Invalid Number. Please enter number from 1 and 9.") | |
} | |
} | |
func printSeries(number int) { | |
for i := 1; i <= number; i++ { | |
spacePaddingCount := number - i | |
emptyString := emptyString(spacePaddingCount) | |
line := emptyString + generatePalindrome(i) + emptyString | |
fmt.Println(line) | |
} | |
} | |
func generatePalindrome(number int) string { | |
palindrome := "" | |
temp := number | |
for i:=0; i < 2 * number - 1; i++ { | |
palindrome += strconv.Itoa(temp) | |
if i < number - 1 { | |
temp -= 1 | |
} else { | |
temp += 1 | |
} | |
} | |
return palindrome | |
} | |
func emptyString(number int) string { | |
str := "" | |
for n := 1; n <= number; n++ { | |
str += " " | |
} | |
return str | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment