牛客練習賽37 A-筱瑪的快樂
阿新 • • 發佈:2019-01-12
A-筱瑪的快樂
連結:https://ac.nowcoder.com/acm/contest/342/A
來源:牛客網
題目描述
筱瑪是個快樂的男孩子。
寒假終於到了,筱瑪決定請他的朋友們一起來快樂。
對於筱瑪來說,最快樂的事情莫過於翻看萬年曆上的日期了。
一個日期是“快樂”的,當且僅當這一年的年份是一個質數,且將月份、日期寫成"MM-DD"的形式後是對稱的。如:"2003-01-10"是“快樂”的。
筱瑪有n個小夥伴,每個小夥伴都會提出一個問題,即:從"2000-01-01"這一天開始,第k個“快樂”的日期是什麼。
輸入描述:
第一行一個整數n。 接下來n行,每行一個數字k,表示一次詢問。
輸出描述:
輸出共n行,每行一個形如"YYYY-MM-DD"的日期表示答案。
示例1
輸入
3
1
23
48
輸出
2003-01-10
2027-11-11
2063-12-21
備註:
1≤n≤106 保證答案存在且答案年份為4位數。
題目分析
當且僅當這一年的年份是一個質數,且將月份、日期寫成"MM-DD"的形式後
由這句話我們可以得出兩個條件:
1.年份為質數(可有打表獲得資料在2000~10000)
2.月份日期對稱,很容易想出符合條件的為0110,0220,0330,1001,1111,1221;
程式碼
#include<stdio.h> int z(int n) { int i; for(i=2;i<n;i++) if(n%i==0) return 0; return 1; } int main() { int n,i,j=0,c[1000]={0}; int a[6]={12,1,2,3,10,11},b[6]={21,10,20,30,01,11}; scanf("%d",&n); for(i=2000;i<=10000;i++) if(z(i)==1) { c[j]=i;j++; } while(n--) { int k,q ; scanf("%d",&k); q=k/6; if(k%6==0) q--; printf("%d-%02d-%02d\n",c[q],a[k%6],b[k%6]); } return 0; }