摘要:
【例1】最小公倍數。 問題描述 求n個數的最小公倍數。 輸入 輸入將包含多組測試用例。輸入的第一行將包含一個整數,指示測試用例的數量。每個測試用例將由m n1 n2 n3…nm形式的單行組成,其中m是集合中的整數數,n1…nm是整數。所有整數都是正的,并且在32位整數的范圍內。 輸出 對于每個測試用
閱讀全文
摘要:
如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。幾個自然數公有的約數,叫做這幾個自然數的公約數。公約數中最大的一個公約數,稱為這幾個自然數的最大公約數(Greatest Common Divisor,簡寫為GCD)。例如,自然數12和30的公約數有1、2、3、6,其中6就是12和
閱讀全文
摘要:
斐波那契數列在很多問題上得到了應用。下面通過一些具體的實例加以說明。 【例1】鋼管切割 問題描述 給一根長度為n的鋼管,問最多能切割成幾段鋼管,使得截成的鋼管互不相等且均不能構成三角形。 輸入 輸入文件的第一行包含整數T(1≤T≤10) ,表示測試用例的數量。 每個測試用例包含一行,包括整數N(1≤
閱讀全文
摘要:
斐波那契數列(Fibonacci sequence),又稱黃金分割數列,因意大利數學家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。 斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21,34,55,89..,這個數列從第3項開
閱讀全文
摘要:
在編寫程序解決某些問題時,可以靈活地使用進位制數,例如像二進制枚舉就是靈活使用二進制數。下面再講述一些例題。 1、二進制的應用 【例1】至少一位數字相同 問題描述 給定N個正整數A1,A2,...,AN,求有多少整數對(i,j),滿足以下條件: 1≤i<j≤N,Ai和Aj至少有一位數字是相同的(不一
閱讀全文
摘要:
【例1】求1/n的值。 問題描述 給定個非0的整數n,計算1/n的值。 輸入 第一行整數T,表示測試組數。后面T行,每行一個整數 n (1≤|n|≤10^5)。 輸出 輸出1/n (是循環小數的,只輸出第一個循環節)。 輸入樣例 4 2 3 7 168 輸出樣例 0.5 0.3 0.142857 0
閱讀全文
摘要:
【例1】時針分針與秒針 問題描述 給定一個24小時格式的數字時間,問給定的這個時刻時針與分針、時針與秒針、分針與秒針 之間的夾角分別是多少? 輸入 有T(1≤T≤104)組測試用例。 對于每組測試用例,用一行hh:mm:ss描述給定的時間。0≤hh<24,0≤mm<60,0≤ss<60。 輸出 對于
閱讀全文
摘要:
我們知道,一個int型整數一般用32位二進制數存儲,所表示的最大整數值為 231-1,對應1個10位的十進制整數。因此,一個更大的整數可能需要更多的二進制位來存儲,在處理時需要對其進行高精度運算處理。 【例1】二進制加法 問題描述 二進制數相加與十進制數的長加非常相似。與十進制數字一樣,從右到左,一
閱讀全文
摘要:
下面繼續通過幾個示例體會二進制枚舉方法的應用。 【例1】建造碉堡 問題描述 設有一個街道筆直的方形城市。該城市的地圖是一個有n行和n列的正方形,每行代表一條街道或一堵墻。 碉堡是一座有四個開口的小城堡,可以通過這些開口射擊。四個開口分別面向北、東、南和西。每個開口都會有一支機槍射擊。 假設一顆子彈威
閱讀全文
摘要:
二進制枚舉的方法在實際問題中應用還是非常方便的。下面繼續體會這一方法的使用。 先看如下的問題。 給出一個數n(1<=n<=1018),求1到n中,有多少個數不是2、5、7、11的倍數? 問題分析 如果n的值較小,可以采用一個簡單的一重循環進行處理即可。編寫如下的程序。 #include <stdio
閱讀全文