1. 程式人生 > >.net 機試題回顧

.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; } }

看起來基礎不夠紮實,寫的有點囉嗦。。。

策略模式

在這裡插入圖片描述

我的思路跟上圖類似,抽象出一個額外稅收的基本介面,實現兩個稅收類(銷售稅和出口稅),
定義一個商品類,一個商品集合類;
商品集合類處理稅和總價。
一氣呵成,對方給的三個測試用例,也一次成功!

優化

感覺優化的地方不多,因為沒有擴充套件的需求,盲目優化導致專案複雜而難以維護,本著能少寫程式碼就少寫的原則,不做不必要的優化。啊哈哈,估計不優化並不是對方的目的。但按本心走,over!

結論

老外面試一把到底,暈菜了,HR是拿我沖人數的嗎~~~~
老外的面試及其給的學習建議:多讀,閱讀掌握詞彙量,這和之前看的培訓有很多相似之處!也算是略有所得!感謝這外美國老外!


在此我向大家推薦一個微服務架構學習交流群。QQ交流學習群號:864759589 裡面會分享一些資深架構師錄製的視訊錄影:高併發、高效能、分散式、微服務架構的原理,分散式架構等這些成為架構師必備的知識體系。
在這裡插入圖片描述


引用連結

  1. 口袋程式碼倉庫
  2. 線上計算器
  3. 本節原始碼:github