description
輸入兩個正整數
n, m
,輸出
n!/m!
,其中階乘定義為
n!= 1*2*3*...*n (n>=1)
。 比如,若
n=6, m=3
,則 n!/m!=6!/3!=720/6=120。
是不是很簡單?現在讓我們把問題反過來:輸入
k=n!/m!
,找到這樣的整數二元組
(n,m) (n>m>=1)。
如果答案不唯一,
n 應該盡量小。比如,若
k=120
,輸出應該是
n=5,
m=1,而不是
n=6,
m=3,因為
5!/1!=6!/3!=120
,而 5<6。
input
輸入包含不超過 100 組資料。每組資料報含乙個整數 k (1<=k<=10^9)。
output
對於每組資料,輸出兩個正整數 n 和 m。無解輸出"impossible",多解時應讓 n 盡量小。
sample input
1201210
sample output
case 1: 5 1case 2: impossible
case 3: 7 4
題解: 只有1的時候,會出現impossible;
當輸入的數是奇數時,直接輸出k k-1,因為,任意個連起來的數相乘都是偶數;
如果是偶數:則利用m*m<=k;來判斷m的大小;
#include#include#include#include#include#include#define ll __int64
using namespace std;
int main()
if(k%2==1)
for(m=1;m*m<=k;m++)
if(sum>k)
break;
}if(f==1)
break;}}
return 0;
}
湖南省2017省賽A題
題目大意,給你n個數,要求你給出任意乙個排列,要求乙個數與左右的數的差值的絕對值大小大於d。直接遞推,設第乙個數為a,則第二個數顯然最大為n,那麼可以推出a n d 1,第三個數為a 1,第四個數為a d。以此可遞推出第i個數大小為,分奇偶性,i為奇數時,其為a i 1 2,偶數時,a d i 4 ...
湖南省2010程式設計大賽第一題
超級水題。不解釋!題目 題目a 汽水瓶有這樣一道智力題 某商店規定 三個空汽水瓶可以換一瓶汽水。小張手上有十個空汽水瓶,她最多可以換多少瓶汽水喝?答案是5瓶,方法如下 先用9個空瓶子換3瓶汽水,喝掉3瓶滿的,喝完以後4個空瓶子,用3個再換一瓶,喝掉這瓶滿的,這時候剩2個空瓶子。然後你讓老闆先借給你一...
12屆湖南省賽 F 地鐵
problem f 地鐵 time limit 5 sec memory limit 128 mb submit 84 solved 8 submit status web board description bobo 居住在大城市 icpccamp。icpccamp 有 n 個地鐵站,用 1,2,...