2016年6月10日 星期五

台中女中b004~b008\b005

b004: 一個都不能少
輸入2個正整數n,m,共有n個,回來m個,印出還沒回來的數 例如:
輸入的n=4,m=3 接著回來的3個數為 5 3 1 則印出 2 4
須宣告整數n,m、陣列a[20+1] ,因題目規定最多20個:int n,m, a[21];
讀入n,mcin >>n >>m;
以下使用i,k 也要宣告: int i,k;
a[i]全設為0 for(i=1; i<=n; ++i) a[i]=0;  // 6/12更新,因為從1開始算
讀入m個數k 陣列a[k]設為1 for(i=0; i<m; ++i){ 以下兩行 }
     某一個回來的數字k               cin >> k;
     將對應的 a[k]設為1表示已回來了: a[k]=1;
沒被設為1的就是還沒回來: for(i=1; i<=n; ++i)
if (a[i]==0) cout << i <<” “;
印完所有數字後印換行: cout << endl;
b005稍難,另一篇再介紹 
b006: Hello, XXX!
輸入1個字串s,若為XXX,則輸出Hello, XXX! 
例如:輸入 Mary 則輸出 Hello, Mary!
須宣告字串變數s string s;
讀入 s cin s;
印出Hello, 串上 s ! cout <<” Hello, ” << s << “!” << endl;

b007: 倒背如流
輸入1個字串s, 將輸入的字串s依相反的字元順序輸出
例如:輸入Hello,則輸出 olleH
須宣告字串變數s string s;
讀入 s cin >>s;
宣告整數 n = 字串長度-1 int n=s.size()-1;
以下使用i也要宣告: int i;
將字串字元由n~0印出: for(i=n; i>=0; --i) cout << s[i];
印完所有字元後印換行: cout << endl;

b008: 迴文
輸入1個字串s, 判斷是否迴文{左右對稱}:ABBAABCBA
須宣告字串變數s string s;
讀入 s cin >>s;
宣告 i n為字串的長度: int i, n=s.size();
檢查前半及其對應的後半: for(i=0; i<n/2; ++i)
  若不相等就是非迴文:      if(s[i] != s[n-1-i]) break;
中間跳出的非迴文:   if(i<n/2) cout <<”NO” << endl;

                     else cout <<”YES” << endl;

0 意見:

張貼留言