지식 테스트
8433 단어 csharp
첫 번째 단계는 모든 단어의 중간 문자를 가져오도록 요청합니다.
단어의 길이가 짝수이면 중간 자릿수 2개를 반환하고 그렇지 않으면 중간 자릿수를 반환합니다.
해결책
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);
}
이 시점에서 모든 것이 정상입니다.
두 번째 단계에서는 100, 50, 20과 같은 값으로 ATM 디스펜서의 메모를 세도록 요청했습니다.
출금
출력
해결책
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;
}
논리는 다음과 같습니다. 나머지 값이 다른 음표 중 하나에 대해 완전히 나눌 수 있으면 다른 음표로 진행할 수 있습니다. 그렇지 않으면
현재 음 카운터에서 1음을 빼야 합니다.
물론 이것은 루프와 Linq를 예로 들면 다른 방법으로 수행할 수 있지만 더 설명하기 쉽게 이렇게 하는 것이 좋습니다.
2단계도 안끝나서 3단계도 못봤네요 :(
앞서 말했듯이 나는 이 단계에서 멈춰 있었다. 나는 긴 하루의 작업 후에이 테스트를 수행 했으므로 내 두뇌가 이런 작업을 할 수 없었습니다.
이 테스트에 대한 내 팁:
Reference
이 문제에 관하여(지식 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eduardocp/knowledge-test-3kfm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)