2014 華為校招機試題(c c 開發類)

2021-09-09 01:22:16 字數 1730 閱讀 2080

第一題

1、2、3.。。。n盞燈,同時有n個人,

第1個人將1的倍數的燈拉一下,

第2個人將2的倍數的燈拉一下,

問最後有幾盞燈是亮的,

初始狀態下燈是滅的,

輸入整數n(n<65536),

輸出亮的燈數

方法解析:設定乙個map,關鍵字為燈的編號,值為0或1,分別表示燈滅和燈亮狀態,遍歷map,第i個燈,將所有i倍數的燈進行一次取反操作,也可以通過陣列實現。**如下:

[cpp]view plain

copy

#include "stdafx.h"  

#include 

#include 

#include 

using namespace std;  

int count1(int n)      

}  int sum = 0;  

for (int j = 0; j < n; j++)  

return sum;  

}  int count2(int n)        

);  

for (int j = 1; j <= n; j++)  

}  int sum = 0;  

for (auto it = m.begin(); it != m.end(); it++)  

if (it->second == 1)  

sum++;  

return sum;  

}  int count3(int n)        

;  for (int i = 1; i <= n; i++)    //通過兩巢狀迴圈模擬n個人一次拉燈    

}  }  for (int j = 0; j < n; j++)  

return sum;  

}  int _tmain(int argc, _tchar* ar**)    

第二題

輸入整數(n是小於9位數的整數),當作字串處理,看是否有相同的子串,如1212,相同子串是12,141516沒有子串(子串必須大於等於2),若有相同子串則輸出1,否則輸出0,

輸入:長度小於9的整數

輸出:1或0

方法解析:一開始考慮這道題時大腦短路,老是把長度為2、3、4的子串情況單獨考慮,後來才想到只要保證有長度為2的子串相同即可。另外,對於string型別的成員函式substr()引數有些遺忘,這個函式的兩個引數分別表示子串的起始位置和子串長度。實現**如下:

[cpp]view plain

copy

#include "stdafx.h"  

#include 

#include 

using namespace std;  

int fun1(string &s)      //方法一:用字元陣列來解決  

}  if (res == 1)  

break;  

}  return res;  

}  int fun2(string &s)    //方法二:用string型別的子串來判斷  

if (flag)  

break;  

}  }  

return flag;  

}  int _tmain(int argc, _tchar* ar**)    

2023年華為校招機試題目

2014年華為校招機試題目 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複 字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮重複出現的字元。比如字串 abcbc 由於無 連續重複字元,壓縮後的字串還是 abcabc 2.壓縮欄位的格式為 字元重複的...

2015華為校招機試題

第一題 60分 按要求分解字串,輸入兩個數m,n m代表輸入的m串字串,n代表輸出的每串字串的位數,不夠補0。例如 輸入2,8,abc 123456789 則輸出為 abc00000 12345678 90000000 include include include 華為2015年第一道上機題 vo...

2013 華為校招機試題

第一題 刪除字串中所有給定的子串 40分 問題描述 在給定字串中查詢所有特定子串並刪除,如果沒有找到相應子串,則不作任何操作。要求實現函式 int delete sub str const char str,const char sub str,char result str 輸入 str 輸入的被...