寫一個程序, 要求功能:求出用1,2,5這三個數不同個數組合的和為100的組合個數。
如:100個1是一個組合,5個1加19個5是一個組合。。。。 請用C++語言寫。
答案:最容易想到的算法是:設x是1的個數,y是2的個數,z是5的個數,number是組合數注意到0=x=100,0=y=50,0=z=20,所以可以編程為:number=0;for (x=0; x=100; x++)for (y=0; y=50; y++)for (z=0; z=20; z++)if ((x+2y+5z)==100)number++;coutnumberendl;
上面這個程序一共要循環1005020次,效率實在是太低了事實上,這個題目是一道明顯的數學問題,而不是單純的編程問題。我的解法如下:因為x+2y+5z=100所以x+2y=100-5z,且z=20 x=100 y=50所以(x+2y)=100,且(x+5z)是偶數對z作循環,求x的可能值如下:z=0, x=100, 98, 96, ... 0z=1, x=95, 93, ..., 1z=2, x=90, 88, ..., 0z=3, x=85, 83, ..., 1z=4, x=80, 78, ..., 0......z=19, x=5, 3, 1z=20, x=0因此,組合總數為100以內的偶數+95以內的奇數+90以內的偶數+...+5以內的奇數+1,即為:(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1某個偶數m以內的偶數個數(包括0)可以表示為m/2+1=(m+2)/2某個奇數m以內的奇數個數也可以表示為(m+2)/2所以,求總的組合次數可以編程為:number=0;for (int m=0;m=100;m+=5){number+=(m+2)/2;}coutnumberendl;這個程序,只需要循環21次, 兩個變量,就可以得到答案,比上面的那個程序高效了許多倍----
只是因為作了一些簡單的數學分析這再一次證明了:計算機程序=數據結構+算法,而且算法是程序的靈魂,對任何工程問題,當用軟件來實現時,必須選取滿足當前的資源限制,用戶需求限制,開發時間限制等種種限制條件下的最優算法。而絕不能一拿到手,就立刻用最容易想到的算法編出一個程序了事
【華為硬件筆試題1】
一 選擇 13個題目,沒有全部抄下來,涉及的課程有電路,模擬電路,數字電路,信號與系統,微機原理,網絡,數字信號處理
1.微分電路 2.CISC,RISC 3.數據鏈路層
二 填空 10個題目,沒有全部抄下來,涉及的課程有電路,模擬電路,數字電路,信號與系統,微機原理,網絡,數字信號處理 有關于 1.TIC6000 DSP 2.二極管 3.RISC 4.IIR
三 簡答 1.x(t)的傅立葉變換為X(jw)=$(w)+$(w-PI)+$(w-5) h(t)=u(t)-u(t-2) 問: (1),x(t)是周期的嗎? (2),x(t)h(t)是周期的嗎? (3),兩個非周期的信號卷積后可周期嗎? 2.簡述分組交換的特點和不足
四 分析設計 1.波形變換題目 從正弦波->方波->鋸齒波->方波,設計電路 2.74161計數器組成計數電路,分析幾進制的 3.用D觸發器構成2分頻電路 4.判斷MCS-51單片機的指令正確還是錯誤,并指出錯誤原因 (1) MUL R0,R1 (2) MOV A,@R7 (3) MOV A,#3000H (4) MOVC @A+DPTR,A (5) LJMP #1000H () 5.MCS-51單片機中,采用12Mhz時鐘,定時器T0采用模式1(16位計數器),請問在下面程序中,p1.0的輸出頻率 MOV TMOD,#01H SETB TR0 LOOP:MOV TH0,#0B1H MOV TL0,#0E0H LOOP1:JNB TF0,LOOP1 CLR TR0 CPL P1.0 SJMP LOOP
【華為硬件筆試題2】
全都是幾本模電數電信號單片機題目
1.用與非門等設計全加法器
2.給出兩個門電路讓你分析異同
3.名詞:sram,ssram,sdram
4.信號與系統:在時域與頻域關系
5.信號與系統:和4題差不多
6.晶體振蕩器,好像是給出振蕩頻率讓你求周期(應該是單片機的,12分之一周期.. ..)
7.串行通信與同步通信異同,特點,比較
8.RS232c高電平脈沖對應的TTL邏輯是?(負邏輯?)
9.延時問題,判錯
10.史密斯特電路,求回差電壓
11.VCO是什么,什么參數(壓控振蕩器?)
12. 用D觸發器做個二分顰的電路.又問什么是狀態圖
13. 什么耐奎斯特定律,怎么由模擬信號轉為數字信號
14. 用D觸發器做個4進制的計數
15.那種排序方法最快?
【華為硬件筆試題3】
第一部分是:先給你一個 字符與文字對應的表,然后再給你幾個文字選出對應的字符組合。 很簡單,考察你的速度的,動作要快,應該直接在答題卡上圖寫答案。 第二部分就是考察智力的,就是找圖形數字的規律,然后讓你添一個空 還有一些簡單的計算,需要速度快,時間有點緊。第三部分就是 一些你日常遇到的情況,你如何解決,這個沒有正確答案。接下來就是專業考試了,不同職位內容也不同。ASIC是數字電路的知識(還有點FPGA), 大致如下:1.簡述數據在多時鐘域中跨時鐘域的幾種處理方法。 2.寫一個簡單邏輯電路的輸出,并化簡。 3.用硬件描述語言(Verilog HDL或VHDL)寫出FIFO控制器的程序。 4.用一個3-8譯碼器和一個或門 組成一個三人表決器 兩個人或者兩個以上輸入1時,輸出為1。 5.用于非門和非門 設計一個兩位二進制數的平方器。 6.啥是零點漂移,在多級耦合的運放電路中的危害是啥,給出一個抑制零點漂移的電路,計算輸出表達式。 7.用邏輯電路實現一個三位二進制數對3取模的電路。 8.畫出RS觸發器的電路圖。 9.設計一個監測連續3個1的序列監測器,當輸入3個或者多于3個1時,輸出為1,畫出原始狀態圖,狀態表,并化簡。
友情提示:閱讀了本文“華為軟件工程筆試題附答案”,本站大學高考網(cnrencai)筆試頻道,還為你提供更多“筆試題目”相關文章閱讀
2020年河北新聞網兩學一做
時間:2023-09-18 07:0:242020年河北新聞網兩學一做
時間:2023-09-15 11:0:59兩學一做學習教育知
時間:2023-09-21 06:0:302020年開展兩學一做學習教
時間:2023-09-19 21:0:30