poj2282 poj3286 數字遞迴

2021-07-10 20:17:20 字數 1022 閱讀 3839

先講poj2282:

題目很容易理解,但是做起來就有點苦難了

我是用遞迴,用例子3863這個例子來講這個遞迴:

用遞迴需要把  f (3863) =f (386 ) + x 這個遞迴的式子理解清楚

去掉個位 3 :知道 3 8 6 這三個數字出現了4次( 0 1 2 3個位的數字可以是這四種情況)

然後就是處理個位的的數字 ,個位的數字出現了 386次,包括  0

每一層遞迴,需要把之前的 *10 ;第一層是  1

然後依次類推

注意!!!  0  這個數字的理解:避免首位的0 的出現

0 和其他數字不同,0 不能從最高位出現,而其他的數字可以從最高位出現,所以處理的時候,在同一位,0 出現的次數比其他的次數要少一次

#include#include#includeusing namespace std;

int num_a[15],num_b[15];

int time;

void deal(int num,int ans)

for(int i=0;i<=9;i++)

ans[i]+=(num/10)*time;

time*=10;

deal(num/10-1,ans);

return ;

}int main()

return 0;

}

同理poj3286

#include#includeusing namespace std;

long long num_1,num_2;

long long ans;

void deal(long long num,long long time)

ans+=(num/10)*time;

time*=10;

deal(num/10-1,time);

return ;

}int main()

return 0;

}

POJ校門外的數

總時間限制 1000ms 記憶體限制 65536kb 描述某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它...

poj 3274 數的雜湊

據說這題很經典噢 開始的分析也經典。題目的分析我就不多說了,具體可以參考 一看就很清楚了 感謝這位博主 但他用的hash函式我暫時是不能理解,說以沒用它的方法。自己寫了個簡單的hash方法,似乎還挺湊效,然後再處理衝突。一開始時,我是先hash一邊,然後再來個for迴圈來判斷每個hash值.tle。...

poj 3298 數狀陣列

題目大意是一條大街上住著n個桌球愛好者,他們的水平高低用乙個數值表示,他們經常舉辦比賽,比賽要三個人,一人當裁判。對裁判是有一定要求的,裁判的水平必須介於兩選手之間且必須住他們中間,計算可以舉辦多少場比賽 include include define maxn 100005 int c 20050 ...