PTA 團體程式設計天梯賽-練習集 L1-033 出生年(15 分)Java
L1-033 出生年(15 分)
以上是新浪微博中一奇葩貼:“我出生於1988年,直到25歲才遇到4個數字都不相同的年份。”也就是說,直到2013年才達到“4個數字都不相同”的要求。本題請你根據要求,自動填充“我出生於y年,直到x歲才遇到n個數字都不相同的年份”這句話。
輸入格式:
輸入在一行中給出出生年份y和目標年份中不同數字的個數n,其中y在[1, 3000]之間,n可以是2、或3、或4。注意不足4位的年份要在前面補零,例如公元1年被認為是0001年,有2個不同的數字0和1。
輸出格式:
根據輸入,輸出x和能達到要求的年份。數字間以1個空格分隔,行首尾不得有多餘空格。年份要按4位輸出。注意:所謂“n個數字都不相同”是指不同的數字正好是n個。如“2013”被視為滿足“4位數字都不同”的條件,但不被視為滿足2位或3位數字不同的條件。
輸入樣例1:
1988 4
輸出樣例1:
25 2013
輸入樣例2:
1 2
輸出樣例2:
0 0001
用Java寫
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n1 = sc.nextInt(); int n2 = sc.nextInt(); int[] a = { 0, 0, 0, 0 }; for (int i = n1; i < 9999; i++) { int count = 0; int b = i; a[3] = b % 10; b /= 10; a[2] = b % 10; b /= 10; a[1] = b % 10; b /= 10; a[0] = b % 10; if(n2==4){ if (a[0] != a[1] && a[0] != a[2] && a[0] != a[3] && a[1] != a[2] && a[1] != a[3] && a[2] != a[3]) { System.out.print((i - n1) + " "); for (int j = 0; j < a.length; j++) { System.out.print(a[j]); } break; } }else if(n2==2){ if((a[0]==a[1]&&a[2]==a[3])||(a[0]==a[2]&&a[1]==a[3])||(a[0]==a[3]&&a[1]==a[2])|| //兩兩相同 (a[0]==a[1]&&a[0]==a[2]&&a[0]!=a[3])|| (a[0]==a[1]&&a[0]==a[3]&&a[0]!=a[1])||(a[0]==a[2]&&a[0]==a[3]&&a[0]!=a[1])||(a[1]==a[2]&&a[1]==a[3]&&a[1]!=a[0])){ //三個相同) System.out.print((i - n1) + " "); for (int j = 0; j < a.length; j++) { System.out.print(a[j]); } break; } }else if(n2==3){ if((a[0]!=a[1]&&a[0]!=a[2]&&a[0]==a[3])|| (a[0]!=a[1]&&a[0]!=a[3]&&a[0]==a[1])||(a[0]!=a[2]&&a[0]!=a[3]&&a[0]==a[1])||(a[1]!=a[2]&&a[1]!=a[3]&&a[1]==a[0])){ System.out.print((i - n1) + " "); for (int j = 0; j < a.length; j++) { System.out.print(a[j]); } break; } } } } }
Java改進版,用set集合儲存
import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n1 = sc.nextInt(); int n2 = sc.nextInt(); for (int i = n1; i <= 3012; i++) { Set<String> set = new HashSet<String>(); char[] a = {'0','0','0','0'}; //這裡不能用char[] a = new char[4]; 因為char的預設值不是0。 char[] b = String.valueOf(i).toCharArray(); for (int j = 0; j < b.length; j++) { //這裡的賦值是為了年份小於1000時前面有0,只不過這個0在後面。 a[j]=b[j]; } for (int j = 0; j < a.length; j++) { set.add(String.valueOf(a[j])); //轉換成字串新增到set集合中,本題利用的是set集合中元素唯一 } if (set.size() == n2) { if(n1>=1000){ System.out.println((i - n1) + " " + i); break; } else if(n1>=1&&n1<10){ System.out.println((i - n1) + " 000" + i); break; }else if(n1>=10&&n1<100){ System.out.println((i - n1) + " 00" + i); break; }else if(n1>=100&&n1<1000){ System.out.println((i - n1) + " 0" + i); break; } } } } }
相關推薦
PTA 團體程式設計天梯賽-練習集 L1-033 出生年(15 分)Java
L1-033 出生年(15 分) 以上是新浪微博中一奇葩貼:“我出生於1988年,直到25歲才遇到4個數字都不相同的年份。”也就是說,直到2013年才達到“4個數字都不相同”的要求。本題請你根據要求,自動填充“我出生於y年,直到x歲才遇到n個數字都不相同的年份”這句話。
PTA 團體程式設計天梯賽-練習集 L1-034 點贊(20 分)C語言
L1-034 點贊(20 分) 微博上有個“點贊”功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點讚的博文的型別,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點讚的紀錄,分析這個人的特性。 輸入格式: 輸入在第一行給出一個
PTA天梯賽練習集 L1-023 輸出GPLT (20 分)
題目描述: 給定一個長度不超過10000的、僅由英文字母構成的字串。請將字元重新調整順序,按GPLTGPLT…這樣的順序輸出,並忽略其它字元。當然,四種字元(不區分大小寫)的個數不一定是一樣多的,若某種字元已經輸出完,則餘下的字元仍按GPLT的順序列印,直到所有
PTA天梯賽練習集 L1-006 連續因子 (20 分)
一個正整數 N 的因子中可能存在若干連續的數字。例如 630 可以分解為 3×5×6×7,其中 5、6、7 就是 3 個連續的數字。給定任一正整數 N,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。 輸入格式: 輸入在一行中給出一個正整數 N(1
PTA天梯賽練習集 L1-011 A-B (20 分)
本題要求你計算A−B。不過麻煩的是,A和B都是字串 —— 即從字串A中把字串B所包含的字元全刪掉,剩下的字元組成的就是字串A−B。 輸入格式: 輸入在2行中先後給出字串A和B。兩字串的長度都不超過10^4 ,並且保證每個字串都是由可見的ASCII碼和空白字
PTA天梯賽練習集 L1-034 點贊 (20 分)
題目描述: 微博上有個“點贊”功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點讚的博文的型別,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點讚的紀錄,分析這個人的特性。 輸入格式: 輸入在第一行給出一個正整數N(≤
團體程式設計天梯賽-練習集L1-005考試座位號
題目連結 思路 題目說“任何時候都不會把兩個人分配到同一個座位上”,所以准考證號和試機座位、實際座位三個量中,兩兩都是一一對應的。 題目的查詢是給出試機座位seat1,查准考證號id和實際座位sea
團體程式設計天梯賽-練習集L1-006連續因子
題目連結 L1-006 連續因子 思路 開了個100*100的二維陣列arr做預處理 二重迴圈,外層是i:1->100,內層j:i->100,arr[i][j]表示從i*(i+1)*;(i+2)*…*j的乘積arr[i][j]表示從i*(i+1)*;
團體程式設計天梯賽-練習集L1-017. 到底有多二
一個整數“犯二的程度”定義為該數字中包含2的個數與其位數的比值。如果這個數是負數,則程度增加0.5倍;如果還是個偶數,則再增加1倍。例如數字“-13142223336”是個11位數,其中有3個2,並且是負數,也是偶數,則它的犯二程度計算為:3/11*1.5*2*100%,約為81.82%。本題就請你計算一個
[java] PTA-團體程式設計天梯賽-練習集(2018){更新中}
L1-001 Hello World(5 分) 這道超級簡單的題目沒有任何輸入。 你只需要在一行中輸出著名短句“Hello World!”就可以了。 /** * @author 莫道 * @描述 XXX * @ClassName L1_001_Hello_Wor
團體程式設計天梯賽-練習集 L1階段 全部題解
當芸芸眾生忙著在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。 輸入格式: 輸入第一行給出一個正整數N(<=100),是已知朋友圈的個數;隨後N行,每行首先給出一個正整數K(<=1000),為朋友圈中的人數,然後列出一個朋友圈內的所有
團體程式設計天梯賽-練習集L1-007. 念數字
輸入一個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出“fu”字。十個數字對應的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu 輸入格式: 輸入在一行中給出一個整數,如: 1234 。 提示:整數包括負數
團體程式設計天梯賽-練習集 L1合集
L1-001. Hello World這道超級簡單的題目沒有任何輸入。你只需要在一行中輸出著名短句“Hello World!”就可以了。時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard#include <iostream&
團體程式設計天梯賽-練習集L1-022. 奇偶分家
L1-022. 奇偶分家 時間限制 400 ms 記憶體限制 65536 kB 程式碼長度限制 8000 B 判題程式 Standard 作者 陳越 給定N個正整數,請統計奇數和偶
團體程式設計天梯賽-練習集 L1-031. 到底是不是太胖了
據說一個人的標準體重應該是其身高(單位:釐米)減去100、再乘以0.9所得到的公斤數。真實體重與標準體重誤差在10%以內都是完美身材(即 |真實體重-標準體重| < 標準體重x10%)。已知1市斤=0.5公斤。現給定一群人的身高和實際體重,請你告訴他們是否太胖或太瘦了。 輸入格式: 輸入第一行給
團體程式設計天梯賽-練習集L1-009. *N個數求和
本題的要求很簡單,就是求N個數字的和。麻煩的是,這些數字是以有理數“分子/分母”的形式給出的,你輸出的和也必須是有理數的形式。 輸入格式: 輸入第一行給出一個正整數N(<=100)。隨後一行按格式“a1/b1 a2/b2 ...”給出N個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號
PTA|團體程式設計天梯賽-練習題目題解錦集(C/C++)(持續更新中……)
PTA|團體程式設計天梯賽-練習題目題解錦集(持續更新中) 實現語言:C/C++; 歡迎各位看官交流討論、指導題解錯誤;或者分享更快的方法!! 題目連結:https://pintia.cn/problem-sets/994805046380707
L1-031. 到底是不是太胖了 團體程式設計天梯賽-練習集
題目 據說一個人的標準體重應該是其身高(單位:釐米)減去100、再乘以0.9所得到的公斤數。真實體重與標準體重誤差在10%以內都是完美身材(即 |真實體重-標準體重| < 標準體重x10%)。已知1市斤=0.5公斤。現給定一群人的身高和實際體重,請你告訴他們是否太胖或太瘦了。 輸入格
L1-013. 計算階乘和(Java)PAT團體程式設計天梯賽-練習集
對於給定的正整數N,需要你計算 S = 1! + 2! + 3! + … + N!。 輸入格式: 輸入在一行中給出一個不超過10的正整數N。 輸出格式: 在一行中輸出S的值。 輸入樣例:
L1-035. 情人節(java) PAT團體程式設計天梯賽-練習集
朋友圈中一奇葩貼:“2月14情人節了,我決定造福大家。第2個贊和第14個讚的,我介紹你倆認識…………咱三吃飯…你倆請…”。現給出此貼下點讚的朋友名單,請你找出那兩位要請客的倒黴蛋。 輸入格式: 輸入按照點讚的先後順序給出不知道多少個點讚的人名,每個人名佔