題目描述:在一堆正整數中,有乙個數恰好出現了b次,而其他的數均出現了a次,一共n個數,求出那出現b次的數,資料保證有解,設題目的輸入為:第一行3個正整數,n,a,b(b
分析:採用位統計法解決此類問題。所有數的大小都在int範圍內,所以數字的長度不超過10位,開乙個10*10的二維陣列,用來統計,所有數字中出現在從第一位(個位)到第10位每一位上0~9這個10個數字每個數字出現的次數。
由於只有乙個數出現了b次,其他數都出現了a次,因此而且bint main()
; int i,j;
for(i=0;i47)
cnt[j++][ch-48]++; //這條語句具有一定的技巧性,直接得到數字的統計數量
} //輸入結束後,即可得到所有數字各個位上數字之和。
for(i=0;i<10;i++)
for(j=0;j<10;j++)
printf("\n");
}
測試輸入:10 4 2
55 67 55 67 67 76 76 67 76 76
輸出:
時間統計法
時間管理1 1 時間在前,計畫在後 2.日期,事件,用時 3.記錄資料 每週每月每年或每5年記錄資料事件 1.整理分析 工作 和 休息 工作 中心工作 附加工作 社會工作 休息 睡覺和 玩耍 智慧型優化智慧型優解 決策是用時間管理形成自己的行為準則 1.不承擔必須完成的任務 工作 2.不接受緊急任務...
標誌位的位運算應用
今天設計新版標誌位,老郭提出了乙個新的方案。以往都是乙個字段設定乙個狀態,tinyint型別,0或者1,但是這樣的壞處是如果乙個資訊表有很多狀態,需要增加很多的字段,空間利用不好,所以他提出用二進位制位運算來解決標示位的問題。設定標示位字段位tinyint型別,也就是最大128,換成二進位制就是有8...
位運算的應用
1.對特定位清0 mask中的特定位為0,其餘位為1。s s mask 2.取某數中的指定位 mask特定位置1,其餘位0。常用來將源運算元某些位置1,其餘位不變 mask特定位置為1,其餘位為0。1.使特定位取反 mask特定位置1,其餘位為0 2.不引用第三方變數,交換值 a a b b a b...