程式設計練習 part3

2021-10-04 02:23:42 字數 2121 閱讀 5987

一.題目:

在命令列輸入如下命令:

xcopy /s c:\ d:\,

各個引數如下:

引數1:命令字xcopy

引數2:字串/s

引數3:字串c:\

引數4: 字串d:\

請編寫乙個引數解析程式,實現將命令列各個引數解析出來。

解析規則:

1.引數分隔符為空格

2.對於用「」包含起來的引數,如果中間有空格,不能解析為多個引數。比如在命令列輸入xcopy /s 「c:\program files」 「d:\」時,引數仍然是4個,第3個引數應該是字串c:\program files,而不是c:\program,注意輸出引數時,需要將「」去掉,引號不存在巢狀情況。

3.引數不定長

4.輸入由用例保證,不會出現不符合要求的輸入

測試樣例:

輸入:xcopy /s c:\ d:\

輸出:4

xcopy

/sc:\

d:\解題思路

先遍歷一遍,把要分隔的引數個數統計出來,然後對每乙個字元進行判斷,如果它不是空格也不是雙引號就輸出,如果是空格但前面有雙引號則輸出,遇到後面的雙引號和空格則換行。

**

#include

#include

using

namespace std;

intmain()

while

(s[i]

!='"');

}}cout<1

true

;用來判斷是哪乙個雙引號(是前還是後)

for(int i =

0;isize()

;i++

)else

if(s[i]

==' '

&&!flag)如果遇到了在雙引號中的空格要輸出

cout<;else

if(s[i]

=='"'

&&!flag)如果是第二個雙引號,恢復flag的值,並換行

else

if(s[i]

==' '

)如果是雙引號外的空格換行

cout

}

二.題目

小易來到了一條石板路前,每塊石板上從1挨著編號為:1、2、3…

這條石板路要根據特殊的規則才能前進:對於小易當前所在的編號為k的 石板,小易單次只能往前跳k的乙個約數(不含1和k)步,即跳到k+x(x為k的乙個非1和本身的約數)的位置。 小易當前處在編號為n的石板,他想跳到編號恰好為m的石板去,小易想知道最少需要跳躍幾次可以到達。

例如:n = 4,m = 24:

4->6->8->12->18->24

於是小易最少需要跳躍5次,就可以從4號石板跳到24號石板

輸入描述:

輸入為一行,有兩個整數n,m,以空格隔開。 (4 ≤ n ≤ 100000) (n ≤ m ≤ 100000)

輸出描述:

輸出小易最少需要跳躍的步數,如果不能到達輸出-1

測試樣例:

輸入: 4 24

輸出: 5

解題思路:

將1 - m個石板看做乙個結果陣列step,每個step[i]儲存著從起點到這一步最小的步

數,其中0為不能到達。

從起點開始對step進行遍歷,先求i的所有約數(即從step[i]能走的步數),然後更新那幾個能到達的位置的最小步數。如果不能到達則更新為此時位置的最小步數 + 1,如果是能到達的就更新為min(已記錄的最小步數,此處的最小步數 + 1)),遍歷一遍後得到結果

**:

#include

#include

#include

using

namespace std;

void

getcountcd

(int n,vector<

int>

&v)求此時n的所有公約數,記錄在陣列中}}

intjump

(int n,

int m)}if

(step[m]==0

)return-1

;else

return step[m]-1

;}intmain()

選擇練習 part3

1.程序排程時,下列程序狀態的變化過程哪一項是不可能發生的?a 阻塞掛起 阻塞 b 就緒掛起 就緒 c 就緒掛起 阻塞掛起 d 阻塞掛起 就緒掛起 解析 下圖是程序狀態的變化過程,程序是不會從就緒掛起到阻塞掛起的 所以本題選c 2.在系統記憶體中設定磁碟緩衝區的主要目的是 a 減少磁碟 i o 次數...

關於除錯 part 3

歡迎喜歡交流和熱心的iphone開發朋友加入qq群參與討論 186739796,驗證碼 csdn。常見錯誤收集貼 方法名錯誤 product edit scheme,在environment varibles中 新增 nszombieenabled yes 最後結果 關於出現殭屍訊號sigbat或者...

Gentoo安裝筆記(part3

此安裝筆記是按照gentoo中文手冊上實際操作記下來的,使用的是宿主機ubuntu9.04 virtualbox3.04,在virtualbox3.04中按預設屬性建立了乙個gentoo虛擬機器。使用gentoo minimal映像檔案安裝。6.開始安裝gentoo 1 選擇乙個合適的映象站點 mi...