一、題目描述
隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1/4,你能從發帖列表中快速找到他們嗎?
二、解決思路
沿用上次消除的思想,定義三個計數器和三個嫌疑水王,比較三個id,如果不相同,就排除,如果相同,那麼計數器加一。嫌疑水王id都與其它水軍id進行抵消最後剩下的就是三個水王。
三、程式**
//四、執行結果 五、心得體會shuiba.cpp : 定義控制台應用程式的入口點。
//#include
"stdafx.h
"#include
"iostream
"int
main()
;//計數器初始化為0
int id[3]=; //
水王id初始化為0
printf("
請輸入發帖的數量:");
scanf("%d
",&length);
int * shuiwang=new
int[length];
printf(
"請輸入所有發帖人的id:");
for(int j=0;j//
輸入id
for(int i=0;i//
找水王
else
if(idcou[1]==0 &&shuiwang[i]!=id[0] && shuiwang[i]!=id[2
])
else
if(idcou[2]==0 &&shuiwang[i]!=id[0] && shuiwang[i]!=id[1
])
else
if(shuiwang[i]!=id[0] && shuiwang[i]!=id[1] && shuiwang[i]!=id[2
])
else
if(shuiwang[i]==id[0
])
else
if(shuiwang[i]==id[1
])
else
if(shuiwang[i]==id[2
])
}printf(
"三個水王的id是:\n");
printf(
"%d\t%d\t%d\t\n
",id[0],id[1],id[2
]);
return0;
}
三個水王和乙個水王的問題有很多相似之處,但這個問題剛開始執行結果出來是錯誤的,後來找到了問題的原因,有一部分可能性忽略了。做完兩個找水王的練習之後,我覺得最牛的不是找到最優方法解決問題的人,而是那個幕後的出題者。
軟體工程課堂練習找水王續
題目 隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1 4,你能從發帖列表中快速找到他們嗎?思路 關聯型容器可以很方便解決,php裡的array就是關聯型陣列,php有很多方便的排序函式,所以本次用php實現。首先對id列表進行遍歷,以id為...
軟體工程課堂訓練 最便宜購書方案
一 實驗題目 某書店針對 哈利波特 系列書籍進行 活動,一共5卷,用編號0 1 2 3 4表示,單獨一捲售價8元,具體折扣如下所示 本數 折扣 2 5 3 10 4 20 5 25 根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應乙個折扣規則,例如購買了兩本卷1,一本卷2,則可以享...
課堂練習之《三個水王》
實驗題目 隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1 4,你能從發帖列表中快速找到他們嗎?實驗思路 跟上一次一樣,只不過是計數器由乙個變為了三個,定義陣列表示它們,由於據統計他們的發帖數量超過了1 4,可將每個水桶id都與其它水軍id進...