.net 机试题回顾

销售税问题:
重点:

  1. 按类型征税,某些类型免税;
  2. 还有出口税,按是否出口收税;
  3. 税收取值问题,税金上舍入 0.05

N久没有做过类似的题了,略分析,便可知道考核点:策略模式,以及基础的算法,这样的考试其实比单纯的做题面试要好很多,直接考核编程能力,并可以从代码上分析出个人编码风格。
好吧,先说结果,题做的不错,面试也不错,可惜HR忽悠我不太考核英语,恰恰英语口语把我刷了,哎~~~浪费时间啊!英语是短板,是短板,是短板!需要好好补充,以后不受这歧视!

上舍入

先说上舍入,以下是google出来的,简洁哦:

public static decimal roundUpToZeroPZeroFive2(decimal input) {
	var output = Math.Ceiling(input*20)/20;
	return output;
}

以下是自己写的,按照算法推导的。

public static decimal roundUpToZeroPZeroFive2v2(decimal input)
  {
         decimal dPrecent = 100;
         var nTmp = (long)Math.Floor(input * 100);
         if ((nTmp % 5) == 0)
          {
              return (nTmp / 5 ) * 5 / dPrecent;
          }
          else
          {
              return (nTmp / 5 + 1) * 5 / dPrecent;
          }
     }

看起来基础不够扎实,写的有点啰嗦。。。

策略模式

.net 机试题回顾_第1张图片

我的思路跟上图类似,抽象出一个额外税收的基本接口,实现两个税收类(销售税和出口税),
定义一个商品类,一个商品集合类;
商品集合类处理税和总价。
一气呵成,对方给的三个测试用例,也一次成功!

优化

感觉优化的地方不多,因为没有扩展的需求,盲目优化导致项目复杂而难以维护,本着能少写代码就少写的原则,不做不必要的优化。啊哈哈,估计不优化并不是对方的目的。但按本心走,over!

结论

老外面试一把到底,晕菜了,HR是拿我冲人数的吗~~~~
老外的面试及其给的学习建议:多读,阅读掌握词汇量,这和之前看的培训有很多相似之处!也算是略有所得!感谢这外美国老外!

你可能感兴趣的:(.net,core)