從網(wǎng)上整理的華為機(jī)試題目_第1頁
從網(wǎng)上整理的華為機(jī)試題目_第2頁
從網(wǎng)上整理的華為機(jī)試題目_第3頁
從網(wǎng)上整理的華為機(jī)試題目_第4頁
從網(wǎng)上整理的華為機(jī)試題目_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

./一、華為機(jī)試——2018年校招10號參加的華為的機(jī)試,這次的3道題難度適中。第一題字符串,第二題貪心算法〔會不會?,dp可以解,第三題長整數(shù)相乘。因?yàn)轭}主做過第三題原題,剛開始就把第三題秒了~~然后開始做第一題,一般10分鐘就可以搞定。第二題要想一下,不過也差不多是原題,Leetcode上第55題jumpgame應(yīng)該是此題原型。因?yàn)槎妓⑦^幾乎是原題的原故,一個小時不到3題就AC完了下面是完整題目和代碼題目一、給你一個原始字符串,根據(jù)該字符串內(nèi)每個字符出現(xiàn)的次數(shù),按照ASCII碼遞增順序重新調(diào)整輸出。舉例!假設(shè)原始字符串為eeefgghhh則每種字符出現(xiàn)的次數(shù)分別是1.eee3次2.f1次3.gg1次4.hhh3次重新排序后輸出的字符串如下:efghegheh編寫程序,實(shí)現(xiàn)上述功能。[溫馨提示]1.原始字符串中僅可能出現(xiàn)"數(shù)字"和"字母";2.請注意區(qū)分字母大小寫。#include

<iostream>#include

<map>#include

<vector>#include

<algorithm>usingnamespace

std;

int

main<>{

string

str;

int

a[128]={0};

while

<cin

>>

str>{

for<int

i=0;i<str.length<>;i++>{

a[str[i]]++;

}

//caculate

the

number

of

each

characterint

max

=

*max_element<a,

a+128>;

sort<str.begin<>,str.end<>>;

long

i

=unique<str.begin<>,

str.end<>>

-

str.begin<>;//the

location

of

the

"maxium

number"

character

str=str.substr<0,i>;

for<int

j=0;j<max;j++>

for<int

i=0;i<str.length<>;i++>{

if<a[str[i]]>{

cout<<str[i];

a[str[i]]--;

}

}

cout

<<endl;

}

return

0;

}

題目二、給出一組正整數(shù),你從第一個數(shù)向最后一個數(shù)方向跳躍,每次至少跳躍1格,每個數(shù)字的值表示你這個位置可以跳躍的最大長度。計(jì)算如何以最少的跳躍次數(shù)跳到最后一個數(shù)。輸入描述:第一行表示有多少個數(shù)n第二行依次是1到n,一個數(shù)一行。輸出描述:輸出一行,表示跳躍最少的次數(shù)#include

<iostream>#include

<cstdlib>#include

<vector>#include

<algorithm>//確定起點(diǎn)后,用一個指針指向最大跳躍點(diǎn)。

//搜索最大跳躍點(diǎn)與起點(diǎn)之間能往后走的最遠(yuǎn)的點(diǎn),選定該點(diǎn)為起點(diǎn),其最大跳躍點(diǎn)為終點(diǎn)。重復(fù)。#define

MAX

1000usingnamespace

std;

//每次跳的最大長度為a[i]+i。if<a[i]

+

i

>

stepMax>{

//搜索最大的跳躍點(diǎn),記為index

stepMax

=

a[i]

+i;

index

=i;

}

if<i

==

end>{

//搜索完畢,從index〔能跳最遠(yuǎn)的位置開始繼續(xù)跳

end

=

stepMax;

++count;

i

=

index;

}

}

return

count;

}

int

main<>

{

int

n;

while

<cin

>>

n>{

int

a[MAX]={0};

for<int

i=0;i<n;i++>{

cin

>>

a[i];

}

cout

<<jump<a,

n>;

}

}

題目三、編寫"長整數(shù)相乘"的程序,實(shí)現(xiàn)兩個任意長度的長整數(shù)〔正數(shù)相乘,輸出結(jié)果這題就不多逼逼了,網(wǎng)上多的是答案。[#include<iostream>usingnamespace

std;

int

multiply

<string

ma,string

mb,string

&strRst>

{

string

chengshuA

=

ma;

string

chengshuB

=

mb;

unsigned

long

a

=

chengshuA.length<>;

unsigned

long

b

=

chengshuB.length<>;

int

strRst_length

=

0;

unsigned

long

c

=

<a+1>*<b+1>;

int

*p

=

newint[c];

int

*pA

=

newint[a];

int

*pB

=

newint[b];

if

<<a

==

0>

||

<b

==

0>>

return

-1;

for

<int

i

=

0;

i

!=

c;

i++>

p[i]

=

0;

for

<string::size_type

index

=

0;

index

!=

chengshuA.length<>;

index++>

pA[a-1-index]

=

chengshuA.at<index>

-

'0';

for

<string::size_type

index

=

0;

index

!=

chengshuB.length<>;

index++>

pB[b-1-index]

=

chengshuB.at<index>

-

'0';

for

<int

temp_b

=

0;

temp_b

!=

b;

temp_b++>

{

for

<int

temp_a

=

0;

temp_a

!=

a;

temp_a++>

{

int

temp

=

p[temp_a+temp_b]

+

pA[temp_a]*pB[temp_b];

p[temp_a+temp_b]

=

temp

%

10;

int

carry

=

temp/10;

int

x

=

temp_a

+

temp_b

+1;

while<carry

!=

0>

{

p[x]

=

p[x]

+

carry%10;

carry

=

carry/10;

x++;

}

}

}

while

<c--

>

0>

{

if

<p[c]

!=

0>

{

strRst_length

=

c

+

1;

break;

}

}

char

ch;

for

<int

i

=

strRst_length

-

1;

i

>=

0

;

i-->

{

ch

=

p[i]

+

'0';

strRst.push_back<ch>;

}

if

<strRst.empty<>>

{

strRst

=

"0";

}

return

0;

}

int

main<void>

{

string

a

;

string

b

;

while

<cin

>>

a>>b>{

string

strRst

=

"\0";

multiply

<a,b,strRst>;

cout

<<

strRst<<endl;

}

return

0;

}

二.華為機(jī)試題目+解答+自己不足+提升題目一、給一個十進(jìn)制數(shù),輸出其二進(jìn)制第一個1所在的位置這個題目沒截下來,大概意思就是這個。首先就是要把十進(jìn)制轉(zhuǎn)成二進(jìn)制。由于長時間沒接觸算法,當(dāng)時我就懵逼了。還好后來我機(jī)智〔此處省略機(jī)智的過程300字。。。。算法如下:if<x<=0>return-1;inta[40]={0};inti;for<i=0;x>0;i++>{a[i]=x%2;x/=2;}for<i--;i>=0;i-->//fortestprintf<"%d",a[i]>;cout<<endl;首先如果給的是負(fù)數(shù)或者小數(shù)什么的要進(jìn)行輸入判定,我這里就判定了負(fù)數(shù)〔我覺得第一題沒得滿分就是忽略了小數(shù)判定然后正式開始將十進(jìn)制轉(zhuǎn)為二進(jìn)制。數(shù)組a[40]用于存儲二進(jìn)制,其中a[0]是二進(jìn)制的第0位。x是我輸入的整數(shù),將x不停地對2取余,余數(shù)就是對應(yīng)的2進(jìn)制位。比如x=12,第一次12對2取余余數(shù)為0商為6,那么0就是12的二進(jìn)制第0位,存至a[0]中,第二次就對6取余余數(shù)為2,存到a[1]中,以此類推了。最終得到a[0]、a[1]、a[2]。。。。。便是二進(jìn)制的0,1,2位。我不放心,輸出測試一下。之后就簡單了,輸出a數(shù)組中從小到大第一個值為1的i值即可。值得注意的是,這種題其實(shí)寫在一個main函數(shù)里就夠了,而且這樣寫也比較好。畢竟機(jī)試不是做項(xiàng)目,不需要模塊化,這樣修改起來也比較容易。題目二、寶寶表示這道題其實(shí)不難,就是兩個字,復(fù)雜。我的思路大概就是1.首先判斷所給矩形是否相交,不相交直接輸出02.若相交,將相交面積表示出來,并輸出結(jié)果最后發(fā)現(xiàn)貌似判斷相交的思路會影響相交求面積的思路〔正所謂數(shù)學(xué)題多問,第一問為第二問做鋪墊一樣由于我的判相交思路不好影響了第二問,導(dǎo)致這一題我沒做出來。思路大概是求出兩個矩形中心坐標(biāo),用平行于坐標(biāo)軸的線段連接兩個中心,平行于x軸的線段長度若記為cenX,另一個記為cenY,我就判斷cenX,Y與兩矩形邊長的關(guān)系。做完后才發(fā)現(xiàn)對第二問毫無幫助,炸了。。。。。。。浴室這一題200分我得了不到100分。。。。?!矝]代碼題目三、這道題其實(shí)沒怎么做出來,就不好說什么。。。。。。下面是這道題正解的源碼:#include<iostream>#include<stack>#include<algorithm>usingnamespacestd;intnum[400][400];intlen[400][400];intmax<inta,intb>{if<a>b>returna;elsereturnb;}intmain<>{intm,n;scanf<"%d%d",&m,&n>;for<inti=1;i<=m;i++>{len[i][0]=0;for<intj=1;j<=n;j++>{len[0][j]=-1;scanf<"%d",&num[i][j]>;if<num[i][j]>len[i][j]=len[i][j-1]+num[i][j];elselen[i][j]=0;}}stack<int>S;intans=0,tmp;for<intj=n;j>0;j-->{intW,L;tmp=0;if<ans>=j*m>break;S.push<0>;for<inti=1;i<=m;i++>{if<len[i][j]>len[S.top<>][j]>{S.push<i>;}else{while<!S.empty<>&&len[i][j]<=len[S.top<>][j]>{L=S.top<>;S.pop<>;intp=S.top<>;W=<i-p-1>;tmp=max<tmp,W*len[L][j]>;}S.push<i>;}}intLL;if<!S.empty<>>LL=S.top<>;while<!S.empty<>>{L=S.top<>;S.pop<>;intp=S.top<>;if<p>W=<LL-p>;else{W=LL;S.pop<>;}tmp=max<tmp,W*len[L][j]>;}ans=max<tmp,ans>;}printf<"%d\n",ans>;return0;}三.華為挑戰(zhàn)賽〔也是模擬機(jī)試題目一、這種第一題擺明了是送分題,不好說什么,有一點(diǎn)編程底子的10分鐘內(nèi)都能做出來#include<iostream>#include<math.h>usingnamespacestd;intmain<>{intm,n;inti,j;inttemp;boolflag;cin>>m>>n;for<i=m;i<=n;i++>{flag=true;;temp=<int>sqrt<i>;for<j=2;j<=temp;j++>{if<i%j==0>flag=false;}if<flag==true>cout<<i<<"";}return0;}題目二、臥槽,這道題我要吐槽。因?yàn)橐恍┰蚝蛦栴},導(dǎo)致這道題占用了我整個考試3/4多的時間,這也明顯是我的不足,此處進(jìn)行自我檢討和總結(jié)。Point:輸入輸出〔這里是我的薄弱項(xiàng)!這也是這道題最主要的內(nèi)容和考察點(diǎn)。其實(shí)題目本身算法不難,對輸入的每一個數(shù),遍歷輸入的每一個數(shù),統(tǒng)計(jì)被整除的次數(shù)count,只要count>=2就是結(jié)果輸出。那么接下來問題來了:1.計(jì)算機(jī)如何接受這些輸入,因?yàn)橛幸笠?,"為分隔符因?yàn)橛?,",作為字符存在,又不限制輸入的具體個數(shù),所以無法用int數(shù)組接收這些輸入,此處應(yīng)選擇C++字符串stringstr;作為接收輸入。那么很明顯,本題對C++字符串是一個考察點(diǎn),并且考察重要程度甚至大于這道題的算法本身。2.如何在一個str中取得這些數(shù)字毫無疑問考察應(yīng)試者的字符串處理能力。我先想的是以逗號為分隔符,由于C++字符串可以以下標(biāo)取出值〔如str[i],取得每一個逗號的位置,后一個減前一個得到中間的數(shù)字。然后發(fā)現(xiàn)str.substr<>函數(shù)會連逗號一起取出,所以這不是一個可取的方法,更不是一個好方法。好的處理方法應(yīng)該是這樣,如下:chara[10];intp=0;intnum[N];inti,j,cnt=0;[cpp]viewplaincopy<spanstyle="white-space:pre"></span>cin>>str;for<i=0;i<str.length<>;++i>//遍歷str中每一個字符{if<str[i]==','>//是逗號,a[p]置為'\0',此時的數(shù)組a就存了我需要的數(shù){a[p]='\0';num[cnt++]=atoi<a>;p=0;}else//不是逗號,那么是數(shù)字,一位一位地存到一個字符數(shù)組a中{a[p++]=str[i];}}a[p]='\0';num[cnt++]=atoi<a>;總的來說,思路如下:〔召神以逗號為結(jié)束標(biāo)志一個字符一個字符存存完一個之后atoi轉(zhuǎn)化為int存到一個int數(shù)組然后注意最后一個數(shù)字需要特殊處理〔最后一個數(shù)字后面沒有逗號,這樣就取出了每一個數(shù),接下來就好做了。題目三、該題后來知道,應(yīng)用匈牙利算法。長期沒接觸算法,已經(jīng)不記得了,沒做出來。。。。四.機(jī)試題目題目一第一題很簡單求一組整數(shù)中最大值和最小值之和描述:求一組整數(shù)中的最大值和最小值之和。如{1,2,3},最大值為1,最小值為3,最終結(jié)果為1+3,即4運(yùn)行時間限制:無限制內(nèi)存限制:128MByte輸入:一組整數(shù)〔含負(fù)整數(shù),整數(shù)個數(shù)范圍為1-50輸出:一組整數(shù)中的最大值和最小值之和樣例輸入:1,2,3,4,5樣例輸出:6答案提示:當(dāng)數(shù)組中只有一個整數(shù)時,則認(rèn)為最大值和最小值都是它題目二根據(jù)來電號碼顯示人名描述:當(dāng)手機(jī)來電時會根據(jù)電話號碼自動匹配保存在電話本中的人名,進(jìn)行電話號碼匹配時一般會根據(jù)號碼的后多少位進(jìn)行匹配,因?yàn)椴煌木W(wǎng)絡(luò)環(huán)境下發(fā)的號碼可能會不同,比如,有的地區(qū)顯示區(qū)號,有的可能不顯示區(qū)號等。該題目要求如下:1對來電號碼進(jìn)行后N位的匹配,N通過參數(shù)讀取獲得,輸出所有匹配號碼的人名,多個人名間加上空格運(yùn)行時間限制:無限制內(nèi)存限制:無限制輸入:參數(shù)1:int型,可能的值為0,7,8,9,當(dāng)為0時需要對來電號碼進(jìn)行精確匹配,也就是說電話本中的號碼和來電號碼必須一摸一樣才滿足參數(shù)2:字符串,為來電號碼輸出:匹配的人名,號碼匹配失敗時顯示"unknown"〔不包括引號樣例輸入:709282357樣例輸出:JaneCora答案提示:來電的號碼長度不會小于要匹配的長度電話本中號碼如果小于要匹配的長度,要跳過,不進(jìn)行比較匹配是從字符串后面匹配,比如號碼12345678,當(dāng)進(jìn)行7位匹配時,只比較后7位,也就是2345678可能需要的頭文件:#include#include#include電話號碼本使用如下的數(shù)據(jù),直接寫到代碼里:題目三、機(jī)車渡口管理描述:某機(jī)車輪渡口,有過江車輛排隊(duì)等待渡江。過江車輛分為客車類和貨車類,上船有如下規(guī)定:同類車先到先上船,客車先于貨車上船。且每上4條客車,才允許上一輛貨車;若等待的客車不足4輛,則以貨車代替,若沒有貨車等待則允許客車都上船。本題目為設(shè)計(jì)一個算法模擬渡口管理。運(yùn)行時間限制:無限制內(nèi)存限制:無限制輸入:整數(shù)N,車輛的數(shù)量車輛類型的標(biāo)識,共N輛,客車:0,貨車:1輸出:以輸入車輛的索引作為車輛的身份標(biāo)識,輸出數(shù)組序列樣例輸入:500101樣例輸出:01324五.看一下這類題目〔有的題目不好理解,但理解后估計(jì)也不難2016/09/22一大波華為機(jī)考題目來襲2016年09月22日22:00:49閱讀數(shù):530今天華為在XX地區(qū)的校園招聘的簡歷提交截止,并且立即開展了一撥又一撥的上機(jī)筆試。我們在外面也見證了一批又一批的題目,我就在這里記錄一下。最新鮮的是晚上的這波的第三題,是一個CD-Key生成的問題。某軟件簡單實(shí)現(xiàn)建議的CD-Key算法。輸入3個正整數(shù),以空格形式隔開,根據(jù)這三個正整數(shù)生成CD-Key序列。輸出的格式為:XXXX-XXXX-XXXX-XXYY。最后兩位是前面14位的自校驗(yàn),確保本身合法。CD-Key使用的字符表為:23456789ABCDEFGHJKLMNPQRSTUVWXYZ。其原理大致如下1、輸入3個32bit的正整數(shù),按照順序取每個正整數(shù)的低16bit,假設(shè)3個低16bit為a、b、c,將abc串聯(lián)組成一個48bit的環(huán)形。然后從低位到高位,每次取出5個bit,其數(shù)值作為下表,去字符表中查表出對應(yīng)的字符,如此循環(huán)輸出14個字符〔注意:第一個輸出的字符應(yīng)該是c的低5bit對應(yīng)數(shù)字的輸出字符;2、上面輸出的14個字符的ASCII碼求和,取低10bit,從低到高,每5個bit為下標(biāo),查表生成兩個字符,即為校驗(yàn)位。代碼如下〔欠優(yōu)化:#include<iostream>usingnamespacestd;voidmain<void>{chartable[33]={'2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z'};unsignedinta,b,c;inti,j;cin>>a;cin>>b;cin>>c;unsignedinttmp1,tmp2;tmp1=<a&0x0000ffff><<16;tmp1=<b&0x0000ffff>|tmp1;tmp2=<c&0x0000ffff><<16;chartmp=0x00;unsignedintt=0x00;charres[17]={0};charfina[17]={0};boold[97]={0};for<i=0;i<32;i++>{d[i]=<<tmp1&0x80000000>==0x80000000>;tmp1=tmp1<<1;}for<i=32;i<48;i++>{d[i]=<<tmp2&0x80000000>==0x80000000>;tmp2=tmp2<<1;}for<i=48;i<97;i++>{d[i]=d[i-48];}for<i=0;i<14;i++>{for<j=0;j<5;j++>{if<d[95-i*5-j]>{tmp=tmp|0x20;}else{tmp=tmp&0xdf;}tmp=tmp>>1;}res[i]=tmp;tmp=0x00;}for<i=0;i<14;i++>{fina[i]=table[res[i]];if<res[i]<8>{t=t+table[res[i]];}else{t=t+table[res[i]];}}tmp=<char><t&0x0000001f>;fina[14]=table[tmp];tmp=<char><<t&0x000003e0>>>5>;fina[15]=table[tmp];for<i=0;i<16;i++>{cout<<fina[i];if<<i!=15>&&<i%4==3>>{cout<<"-";}}cout<<endl;system<"pause">;}其實(shí)晚上的題目,相對于下午的要簡單一些。下面是晚上的第二道題目:一個英文句子僅僅有單詞、逗號、句號、空格組成。要求過濾掉句子中的重復(fù)單詞〔保留重復(fù)單詞中的第一個,按照句子順序輸出不重復(fù)的單詞,不包括標(biāo)點(diǎn)符號。單詞區(qū)分大小寫,Where和where是不同的。例如:wherethereisawill,thereisaway的輸出則是wherethereisawillway晚上這波第一道題目是一道雞兔同籠并且要驗(yàn)證輸入的問題:輸入雞和兔子的頭數(shù)h和腳數(shù)f,輸出這樣的組合是否存在〔0表示不存在,1表述存在,以及雞的數(shù)目c,兔子的數(shù)目r〔當(dāng)m=0時,c=0,r=0。下午有一道題目是這樣的:小華截獲了一段敵軍密電,密電內(nèi)容是n個數(shù)字,從這n個數(shù)字中可以解密出下一次敵軍在戰(zhàn)斗中投入的人數(shù)。解密規(guī)則是這樣的:第一次從n個數(shù)據(jù)中取出兩個數(shù)據(jù)相加,然后從余下的數(shù)據(jù)中取一個,與上次的和相加,如此循環(huán)知道n個數(shù)據(jù)取完。再將每次的和相加,就是下次投入戰(zhàn)斗的敵人數(shù)目。請計(jì)算出下一次敵軍投入戰(zhàn)斗的最大數(shù)目。下午還有一道題目是這樣的:簡化版本的消消樂〔一維的,即在給定的一位數(shù)組中〔15個數(shù)據(jù),用例有且僅有15個數(shù)據(jù)。如果連續(xù)三個或者連續(xù)三個以上的數(shù)據(jù)相同,則將這些數(shù)據(jù)刪除。同樣,因?yàn)閯h除而結(jié)合在一起的數(shù)據(jù)如果重復(fù)次數(shù)超過三次,也要將該數(shù)據(jù)刪除。最終輸出不能夠在消去的數(shù)組。如果數(shù)據(jù)全部被刪除的話則輸出none。再往前推就是上午的上機(jī)試題了。有個讀博的同學(xué)去了,據(jù)說是tom禮物的問題,是往年的考題。還有同學(xué)做到的冒險(xiǎn)王子從山洞逃跑的問題,游戲中與大boss打怪的問題,都是往年的題目。六.華為機(jī)試題目回憶今天上午自己去參加華為的機(jī)試,特將題目記錄如下。第一題將一個字符串做如下處理:1.大寫字母轉(zhuǎn)成下一位大寫字母,如A轉(zhuǎn)成B,特例為Z轉(zhuǎn)成A2.小寫字母類似3.對數(shù)字做如下轉(zhuǎn)換:偶數(shù)減2,特例0轉(zhuǎn)成8;奇數(shù)加1,特例9轉(zhuǎn)成0.第二題算麻將的番數(shù):規(guī)則如下:1.有條和餅兩副牌,使用T與O表示,1T代表1條2.其中出現(xiàn)1條2條3條連著則加1番3.出現(xiàn)4個一樣的牌則代表杠,加兩番4.7連對則加4番輸入規(guī)則:輸入者保證牌數(shù)已經(jīng)胡了,格式例如"1T2T3T,4O5O6O,3T4T5T,5O6O7O,7T7T.".中間使用","逗號隔開,結(jié)尾是句點(diǎn)。輸出規(guī)則:輸出一個整型值代表番數(shù)。第三題找出一篇文章中單詞出現(xiàn)頻率最高的前兩位〔不分并列情況:文章字符串規(guī)則如下:1.文章單詞使用空格、句點(diǎn)與逗號分隔2.全部轉(zhuǎn)成小寫字母考后感題目分?jǐn)?shù):第一道60分;第二道100分;第三道160分;自己做對了前兩道,160分吧,一般。最后一題只剩10分鐘了,也沒去做了。感謝非常感謝華為〔尤其是劉茜,我不知道她是誰,之前本來第一次筆試我回短信就已經(jīng)晚了,而且第二天有因?yàn)榉浅>o急的事情又不能去了,只能表示歉意。誰知還給自己一次機(jī)試的機(jī)會。在此對這種負(fù)責(zé)的精神表示崇高的敬意?。?!七.2016機(jī)試題目實(shí)現(xiàn)語言:C++題目簡單,沒有涉及太多的算法,就是一些輸入輸出的格式需要注意題目一描述

根據(jù)指定的分隔符分隔字符串,并輸出指定的段。如果指定的段超過分隔的段數(shù),輸出:NULL

舉例:

AAA?BBB?CCC??2

字符串為:AAA?BBB?CCC?

分隔符為:?

指定的段為:2

字符串分割為:AAABBBCCC共三段,第2段字符串為:BBB

輸入輸出格式要求

輸入分隔字符串長度小于128個字符,指定的段是一個正整數(shù)。樣例

輸入:AAA?BBB?CCC??2

輸出:BBB實(shí)現(xiàn)代碼如下:#include<iostream>#include<string.h>#include<vector>#include<typeinfo>#include<cctype>usingnamespacestd;intgetNum<stringinpus>{intobjNum=0,t=1;for<longi=inpus.length<>-1;i>=0;--i>{if<isdigit<inpus[i]>&&inpus[i]!='?'>{objNum+=<inpus[i]-'0'>*t;t*=10;}else{break;}}returnobjNum;}intmain<intargc,constchar*argv[]>{stringinpus;cin>>inpus;vector<string>objStringInfo;stringa="";for<inti=0;i<inpus.length<>;++i>{if<inpus[i]=='?'||i==inpus.length<>>{objStringInfo.push_back<a>;a="";}else{a+=inpus[i];}}cout<<objStringInfo[getNum<inpus>-1]<<endl;return0;}運(yùn)行結(jié)果:題目一.png題目二輸入一組大于0小于1000的整數(shù),且均不相同,逗號隔開,輸出其中能被這些整數(shù)中其他元素整除的那些元素。

輸入輸出格式要求

輸入要求同上述描述,輸出要求整數(shù)順序按照輸入時的順序輸出。

樣例

輸入:2,4,6,8,10,12,3,9

輸出:4,6,8,10,12,9代碼如下:#include<iostream>#include<string>#include<vector>usingnamespacestd;intgetStringNum<stringinpus>{intobjNum=0,t=1;for<longi=inpus.length<>-1;i>=0;--i>{if<isdigit<inpus[i]>&&inpus[i]!='?'>{objNum+=<inpus[i]-'0'>*t;t*=10;}else{break;}}returnobjNum;}vector<int>getNum<stringinputs>{vector<string>v;vector<int>num;stringbuff="";for<inti=0;i<=inputs.length<>;++i>{if<i==inputs.length<>-1>{buff=inputs[inputs.length<>-1];v.push_back<buff>;buff="";}if<inputs[i]==','>{v.push_back<buff>;buff="";}else{buff+=inputs[i];}}for<inti=0;i<v.size<>;++i>{num.push_back<getStringNum<v[i]>>;}returnnum;}intmain<intargc,constchar*argv[]>{strings;cin>>s;vector<int>array=getNum<s>;intk=0,result[100]={0};for<inti=0;i<array.size<>;++i>{for<intj=0;j<array.size<>;++j>{if<array[i]%array[j]==0&&array[i]!=array[j]>{result[k]=array[i];k++;break;}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論