posts - 60,comments - 71,trackbacks - 0
          好久不寫技術(shù)貼了,決定換一下思維,寫個(gè)算法相關(guān)的。

          最近面試的時(shí)候,很喜歡問兩個(gè)算法問題。
          問題1:阿拉伯?dāng)?shù)字的金額轉(zhuǎn)換為中國(guó)傳統(tǒng)的漢字形式。
          問題2:不增加變量,交換兩個(gè)數(shù)值變量的值。

          先說問題2,因?yàn)閱栴}2最簡(jiǎn)單。
                  很顯然,要想不增加變量,交換兩個(gè)變量的值,只可能做加減乘除運(yùn)算。用對(duì)應(yīng)的加減法或者乘除法都可以做到。舉例:a=5;b=8。
                加減: a=a+b=5+8=13;b=a-b=13-8=5;a=a-b=13-5=8;
                            a=a-b=5-8=-3;b=a+b=-3+8=5;a=b-a=5-(-3)=8;
             同理,乘除。
          我覺得此題主要是考一個(gè)人的思維。但是面試的人,大部分都不會(huì)做。

          再說問題1:還是大部分人不會(huì)做。現(xiàn)提供本人思路如下:
                 分析問題:a、小數(shù)點(diǎn)之前為整數(shù),小數(shù)點(diǎn)后只有兩位,為角分。
                                     b、小數(shù)點(diǎn)之前個(gè)位單位為元,依次為元,十,百,千,萬,十萬,百萬,千萬,億……
                                     c、每位的數(shù)字對(duì)應(yīng)為:零、壹、貳、叁、肂、伍、陸、柒、捌、镹。
                                    d、在操作中,數(shù)值運(yùn)算和數(shù)組操作性能最快。
                 思路:a、用兩個(gè)數(shù)組,array1[10]、array2[]按下標(biāo)為0、1、……的順序分別存儲(chǔ)零、壹、貳、叁、肂、伍、陸、柒、捌、镹。和元,十,百,千,萬,十萬,百萬,千萬,億……
                            b、針對(duì)整數(shù)部分,從十開始除,余數(shù)轉(zhuǎn)換為漢字,取對(duì)應(yīng)余數(shù)值得數(shù)組array1[余數(shù)]所對(duì)應(yīng)的值。取得到的商,并記錄除的次數(shù)。次數(shù)對(duì)應(yīng)為array[次數(shù)]的漢字。拼接。
                            c、反復(fù)第二步,直道商為0。
                            d、其中余位為0時(shí)特殊處理。
                            e、小數(shù)點(diǎn)后統(tǒng)一處理兩次。不做講述。
                舉例:234.12。整數(shù)為234。
                           234/10  商23 余4  除次數(shù)為0  array1[4]+array2[0]=肆元
                           23/10    商2   余3  除次數(shù)為1  array1[3]+array2[1]=叁拾
                           2/10      商0   余2  除次數(shù)為2  array1[2]+array2[2]=貳佰
                合起來就是貳佰叁拾肆元。
                  此題考的是拿到問題后的分析思路和基本功。可能每個(gè)人的實(shí)現(xiàn)方法不一樣。可能是緊張吧,面試的時(shí)候,大部分人都答不出來。
          posted on 2008-07-11 16:18 henry1451 閱讀(128) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 枣强县| 广河县| 丰宁| 晋江市| 东安县| 抚远县| 咸丰县| 武功县| 昔阳县| 乌兰县| 乡宁县| 万荣县| 江阴市| 邢台市| 若羌县| 安新县| 贵德县| 应城市| 南宫市| 水城县| 社旗县| 原平市| 柘城县| 洛川县| 永吉县| 成都市| 满城县| 翁牛特旗| 平凉市| 安达市| 舒城县| 南丹县| 天峻县| 白河县| 玉田县| 南开区| 中阳县| 庄浪县| 沂源县| 无为县| 泰州市|