Please solve this program!
If a number is even means, should print as even number else should print in the below pattern
Suppose the given number is 3, the output should be as below
*
* *
* * *
* *
*
This is a variation of Fizz Buzz puzzle usually asked in programming interviews.
Here is one of the approach that can be used to solve this question. There can be many ways to arrive at the solution. It will be interesting to see how other QTP forum members approach this question.
- Declare a string you wish to make a pattern (in this case "*" )
- Take a mod of the given number (in this case since you need to identify an even number use 2)
- If mod is 0, print the even number Else use a loop to iterate till n , where "n" is the odd number.
- Use another for loop to print the string. first in ascending order and then in descending order.
PHP Code:
Dim strPattern, iNumber
strPattern = "*"
iNumber = 3
If iNumber Mod 2 = 0 Then
print iNumber
else
For i = 1 To iNumber Step 1
For j = 1 To i Step 1
print strPattern
Next
print vbNewLine
Next
For i = 1 To iNumber Step 1
For j = (iNumber-1) To i Step -1
print strPattern
Next
print vbNewLine
Next
End If
Thanks Ankur for ur prompt reply.
I have modified second For Loop little bit
Code:
Dim strPattern, iNumber
strPattern = "*"
iNumber = 3
m=""
If iNumber Mod 2 = 0 Then
print iNumber
else
For i = 1 To iNumber Step 1
For j = 1 To i Step 1
m= m & strPattern
Next
m= m & vbNewLine
Next
For i = iNumber -1 To 1 Step -1
For j = 1 To i Step 1
m= m & strPattern
Next
m= m & vbNewLine
Next
End If
msgbox m
Hi Ankur,
I have come up with one more logic is below
Code:
Dim strPattern, iNumber
strPattern = "*"
iNumber = 3
m=""
If iNumber mod 2 = 0 Then
print iNumber
Else
maxNumber=inumber *2 -1
for i=1 to maxNumber step 1
if i<=iNumber then : a=i: else :a=a-1: end if
for j=1 to a step 1
m= m& strPattern
next
m=m&vbnewline
next
End if
Msgbox m