1. 程式人生 > >PTA 團體程式設計天梯賽-練習集 L1-033 出生年(15 分)Java

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. 計算階乘和JavaPAT團體程式設計天梯-練習

對於給定的正整數N,需要你計算 S = 1! + 2! + 3! + … + N!。 輸入格式: 輸入在一行中給出一個不超過10的正整數N。 輸出格式: 在一行中輸出S的值。 輸入樣例:

L1-035. 情人節(java) PAT團體程式設計天梯-練習

朋友圈中一奇葩貼:“2月14情人節了,我決定造福大家。第2個贊和第14個讚的,我介紹你倆認識…………咱三吃飯…你倆請…”。現給出此貼下點讚的朋友名單,請你找出那兩位要請客的倒黴蛋。 輸入格式: 輸入按照點讚的先後順序給出不知道多少個點讚的人名,每個人名佔