湖南省第十一屆大學生計算機程式設計競賽(階乘除法)
問題 F: 階乘除法
時間限制: 5 Sec 記憶體限制: 128 MB提交: 84 解決: 19
[提交][狀態][討論版]
題目描述
輸入兩個正整數 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。
輸入
輸入包含不超過 100組資料。每組資料包含一個整數 k (1<=k<=109)。輸出
對於每組資料,輸出兩個正整數 n和 m。無解輸出"Impossible",多解時應讓 n儘量小。樣例輸入
120
1
210
樣例輸出
Case 1: 5 1
Case 2: Impossible
Case 3: 7 4
#include<stdio.h> #include<iostream> #include <algorithm> #include<string.h> #include<math.h> #include<queue> #include<set> #define LL long long #define INf 0x3f3f3f3f using namespace std; int main() { int n; int flag,count=1,c,c1; while(scanf("%d",&n)!=EOF) { flag=0; printf("Case %d: ",count); count++; if(n==1) { printf("Impossible\n"); continue; } else { for(int i=2;i*(i-1)<=n;i++)//確保i的階乘絕對小於等於n { if(n%i==0) { int ans=1; for(int j=i;j>=1;j--) { ans=ans*j; if(ans==n) { c=i; c1=j-1; flag=1; break; } } } if(flag) break; } } if(flag) { printf("%lld %lld\n",c,c1); } else printf("%lld %lld\n",n,n-1); } return 0; }
相關推薦
湖南省第十一屆大學生計算機程式設計競賽(階乘除法)
問題 F: 階乘除法 時間限制: 5 Sec 記憶體限制: 128 MB提交: 84 解決: 19 [提交][狀態][討論版] 題目描述 輸入兩個正整數 n, m,輸出 n!/m!,其中階
CSU Problem 1781 階乘除法——湖南省第十一屆大學生計算機程式設計競賽
輸入兩個正整數 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>=
CSU Problem 1785 又一道簡單題——湖南省第十一屆大學生計算機程式設計競賽
此文章可以使用目錄功能喲↑(點選上方[+]) CSU Problem 1785 又一道簡單題 Accept: 0 Submit: 0 Time Limit: 5 Sec Memory
CSU Problem 1779 錯誤的演算法——湖南省第十一屆大學生計算機程式設計競賽
有道題目是這樣的: 輸入一個 n 行 m 列網格,找一個格子,使得它所在的行和列中所有格子的數之和最大。如果答 案不唯一,輸出任意解即可。比如,在下面的例子中,最優解是(1,3),即第一行和的三列的交 點(行從上到下編號為 1~n,列從左到右編號為 1~m),所有 7 個數之和為 35。 快要比賽的時候,
湖南省第九屆大學生計算機程式設計競賽 好老師
J - 好老師 我想當一個好老師,所以我決定記住所有學生的名字。可是不久以後我就放棄了,因為學生太多了,根本記不住。但是我不能讓我的學生髮現這一點,否則會很沒面子。所以每次要叫學生的名字時,我會引用離他最近的,我認得的學生。比如有10個學生: A ? ? D ? ? ?
第十一屆湖南大學生程式設計競賽 階乘除法(思維)
題目思路很清晰,就不講解了,思路分析直接詳細寫在程式碼了,程式碼如下: #include<iostream> #include<cmath> using namespac
河南省第十一屆大學生ACM程式設計競賽總結與感悟
今年大二,第一次參加省賽,前前後後有很多的感悟,容我慢慢道來。 在省賽開始之前,我們實驗室為了準備省賽,在天梯賽藍橋杯之後就開始給參加省賽的同學停課,停到五月五號,因為老師估計今年的省賽應該就是那個時間左右,越臨近比賽我越緊張,因為感覺還是會有點
湖南省第八屆大學生計算機程式設計競賽C題 Updating a Dictionary
#include <cstdio> #include <cstdlib> #include <string> #include <cctype> #include <map> #include <set> using namespac
2018湖南省第十四屆“嘉傑杯”大學生計算機程式設計競賽總結
經過三個月的幸苦練習,在省賽這個大舞臺上,我們小隊收穫了一枚銅牌。 從一開始刷南陽oj八十道水題,vj上的二十場校賽,再到多校的場場自閉,CF的熬夜作戰。嗯,我確實付出了很多。 然而我始終在思考,我這麼多的付出到底學到了什麼。貌似也接觸了許多新演算
2018湖南省第14屆大學生計算機程式設計競賽---賣萌表情
用貪心來求。我的理解:用貪心來解決問題時要優先選擇貢獻大的。 對於後2種表情,直接列舉就行。 對於前面2種表情,先選擇倒著的笑臉,因為出現‘^ ’時,倒著的笑臉能儘可能多的使用‘v’. #include<bits/stdc++.h> #define ma
2018年湖南省第十四屆大學生計算機程式設計競賽 CSU 2164: 2018
題目傳送門 不會自己推,比賽現場找規律 程式碼: #include<bits/stdc++.h> using namespace std; typedef long long L
戰場的數目——湖南省第六屆大學生計算機程式設計競賽
戰場由若干單位正方形積木組成。積木佔據了連續的若干列,且圖形周長等於它最小包圍矩形的周長。假設戰場的圖形周長為p,一共有多少種可能的戰場? 戰場不能恰好為一個矩形。 例如,p<8時沒有符合要求的戰場,p=8時有2種戰場: p=10有9種戰場: 要求輸出方案總
湖南省第六屆大學生計算機程式設計競賽 弟弟的作業
你的弟弟剛做完了“100以內數的加減法”這部分的作業,請你幫他檢查一下。每道題目(包括弟弟的答案)的格式為a+b=c或者a-b=c,其中a和b是作業中給出的,均為不超過100的非負整數;c是弟弟算出的答案,可能是不超過200的非負整數,也可能是單個字元"?",表示他不會算
湖南省第六屆大學生計算機程式設計競賽 戰場的數目
戰場的數目 在上題中,假設戰場的圖形周長為p,一共有多少種可能的戰場? 例如,p<8時沒有符合要求的戰場,p=8時有2種戰場: p=10有9種戰場: 要求輸出方案總數模987654321的值。 Input輸入檔案最多包含25組測試資料,每個資料僅包含
湖南省第十屆大學生計算機程式設計競賽:酷酷的單詞
1505: 酷酷的單詞 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 237 Solved: 88 [Submit][Status][Web Board] Description 輸入一些僅由小寫字母
湖南省第六屆大學生計算機程式設計競賽__弟弟的作業
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; int chang
湖南省第十二屆大學生計算機程式設計競賽 2016
1803: 2016 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 537 Solved: 343 [Submit][Status][Web
湖南省第十屆大學生計算機程式設計競賽:殘缺的棋盤
1511: 殘缺的棋盤 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 169 Solved: 56 [Submit][Status][Web Board]Description] Input 輸入
CSU 1112 機器人的指令 (湖南省第八屆大學生計算機程式設計競賽 )
1112: 機器人的指令 Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 2335 Solved: 841
2017年湖南省第十三屆大學生計算機程式設計競賽-D Tian Ji's Horse Race Again
思路:貪心。對於King的馬a[n]和Tian的馬b[n],交換的k匹馬,肯定是取a[n]的最大值和b[n]的最小值交換,那麼對於a[],b[]的比較排列是固定的,因此主要怎麼求贏得次數,由於a,b都是由小到大排序的,因此可以先求出對於b[i]至少要交換多少匹馬才能夠