An
array is called vanilla if all its
elements are made up of the same digit. For example {1, 1, 11, 1111, 1111111}
is a vanilla array because all its elements use only the digit 1. However, the
array {11, 101, 1111, 11111} is not
a vanilla array because its elements use the digits 0 and 1. Write a method
called isVanilla that returns 1 if
its argument is a vanilla array. Otherwise it returns 0.
If
you are writing in Java or C#, the function signature is
   int isVanilla(int[ ] a)
If
you are writing in C or C++, the function signature is
  int isVanilla(int a[ ], int len) where len is
the number of elements in the array a.
Example
| 
if a is | 
Return | 
reason | 
| 
{1} | 
1 | 
all elements use
  only digit 1. | 
| 
{11, 22, 13, 34,
  125} | 
0 | 
Elements used 5
  different digits | 
| 
{9, 999, 99999,
  -9999} | 
1 | 
Only digit 9 is
  used by all elements. Note that negative numbers are okay. | 
| 
{ } | 
1 | 
There is no counterexample
  to the hypothesis that all elements use the same digit. | 
Solution :
  public int
isVanilla(int [] a)
        {
            int rtnVal
= 1, rem=0, n = 0, flag = 0;
            if
(a.Length > 0)
                flag = a[0] % 10;
            for(int i=0;i<a.Length;i++)
            {
                if (a[i]
< 0)
                    a[i] = -1 * a[i];
                n = a[i];
                while(n!=0)
                {
                    rem = n % 10;
                    n = n / 10;
                    if(rem!=flag)
                    {
                        rtnVal = 0;
                        goto label;
                    }
                }
            }
        label:
            return rtnVal;
        }



 04:12
04:12


 

0 comments:
Post a Comment