Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 28, 2021 02:56 pm GMT

Knowledge test

I did a knowledge test where I received a link with 3 steps, unfortunately, I stayed stucked at second step.

The first step ask for to get te middle char of any word.
If the word has a even length, return 2 middle digits otherwise, the middle digit.

Solution

public static string GetMiddle(string s){  if(s.Length <= 2) return s;  var isEven = s.Length % 2 == 0;  // I remove 1 digit because de array is 0 index;  // I always round up for de odd words, even words the division is exact  // rounding up odd words, i dont need to handle with even/odd on the 1 subtraction  var middleDigit = (int)Math.Ceiling(s.Length * 1M / 2M) - 1;  return s.Substring(middleDigit, isEven ? 2 : 1);}

At this point, everything is ok.

The second step asked to me for count the notes of an ATM dispenser just with notes of values: 100, 50 and 20.

Withdrawals

  • $260
  • $40
  • $230
  • $250

Outputs

  • {2, 0, 3}
  • {0, 0, 2}
  • {1, 1, 4}
  • {2, 1, 0}

Solution

public static int[] Withdraw(int amount){  var result = new int[] { 0,0,0 };  var note100Result = (int)Math.Floor(amount * 1M / 100M);  if(note100Result > 0)  {    var remainValue = amount - (note100Result * 100);    if(remainValue % 50 !=0)      if(remainValue % 20 !=0)        note100Result--;    result[0] = note100Result;    if(note100Result > 0)      amount -= note100Result * 100;  }  var note50Result = (int)Math.Floor(amount * 1M / 50M);  if(note50Result > 0)  {    var remainValue = amount - (note50Result * 50);    if(remainValue % 20 !=0)      note50Result--;    result[1] = note50Result;    if(note50Result > 0)      amount -= note50Result * 50;  }  var note20Result = (int)Math.Floor(amount * 1M / 20M);  if(note20Result > 0)  {    result[2] = note20Result;  }  return result;}

The logic is: you just can proceed to another note if the remaining value is fully divisible for ANY ONE of the other notes, otherwise,
you need to subtract 1 note of the current note counter.

Of course, this can be done in other ways, with a loop and Linq as example, but I preferred to do like this to be more explainable.

As I didn't finish the second step, I even couldn't see the third step :(

As I said earlier, I stayed stucked at this step. I did this test after a long day of work, so my brain was not okay to do tasks like this.

My tip for this tests:

  • Do this in a unstressed moment, after take a snap or a good sleep night (if you can choice this moments obviously)

Original Link: https://dev.to/eduardocp/knowledge-test-3kfm

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To