PTA|團體程式設計天梯賽-練習題目題解錦集(C/C++)(持續更新中……)

来源:https://www.cnblogs.com/lesileqin/archive/2019/01/14/10264226.html
-Advertisement-
Play Games

PTA|團體程式設計天梯賽-練習題目題解錦集(持續更新中) 實現語言:C/C++; 歡迎各位看官交流討論、指導題解錯誤;或者分享更快的方法!! 題目鏈接:https://pintia.cn/problem-sets/994805046380707840/problems 目錄 (點擊對應題目即可進入 ...


PTA|團體程式設計天梯賽-練習題目題解錦集(持續更新中)

實現語言:C/C++;      歡迎各位看官交流討論、指導題解錯誤;或者分享更快的方法!!

題目鏈接:https://pintia.cn/problem-sets/994805046380707840/problems


目錄

(點擊對應題目即可進入相應題解……小聲BB……)

L1-001 Hello World (5 分)

L1-002 列印沙漏 (20 分)

L1-003 個位數統計 (15 分)

L1-004 計算攝氏溫度 (5 分)

L1-005 考試座位號 (15 分)

L1-006 連續因數 (20 分)

L1-007 念數字 (10 分)

L1-008 求整數段和 (10 分)

L1-009 N個數求和 (20 分)

L1-010 比較大小 (10 分)

L1-011 A-B (20 分)

L1-012 計算指數 (5 分)

L1-013 計算階乘和 (10 分)

L1-014 簡單題 (5 分)

L1-015 跟奧巴馬一起畫方塊 (15 分)

L1-016 查驗身份證 (15 分)

L1-017 到底有多二 (15 分)

L1-018 大笨鐘 (10 分)

L1-019 誰先倒 (15 分)

L1-020 帥到沒朋友 (20 分)

L1-021 重要的話說三遍 (5 分)

L1-022 奇偶分家 (10 分)

L1-023 輸出GPLT (20 分)

L1-024 後天 (5 分)

L1-025 正整數A+B (15 分)

L1-026 I Love GPLT (5 分)

L1-027 出租 (20 分)

L1-028 判斷素數 (10 分)

L1-029 是不是太胖了 (5 分)

L1-030 一幫一 (15 分)

L1-031 到底是不是太胖了 (10 分)

L1-032 Left-pad (20 分)

L1-033 出生年 (15 分)

L1-034 點贊 (20 分)

L1-035 情人節 (15 分)

L1-036 A乘以B (5 分)

L1-037 A除以B (10 分)

L1-038 新世界 (5 分)

L1-039 古風排版 (20 分)

L1-040 最佳情侶身高差 (10 分)

L1-041 尋找250 (10 分)

L1-042 日期格式化 (5 分)

L1-043 閱覽室 (20 分)

L1-044 穩贏 (15 分)

L1-045 宇宙無敵大招呼 (5 分)

L1-046 整除光棍 (20 分)

L1-047 裝睡 (10 分)

L1-048 矩陣A乘以B (15 分)

L1-049 天梯賽座位分配 (20 分)

L1-050 倒數第N個字元串 (15 分)

L1-051 打折 (5 分)

L1-052 2018我們要贏 (5 分)

L1-053 電子汪 (10 分)

L1-054 福到了 (15 分)

L1-055 誰是贏家 (10 分)

L1-056 猜數字 (20 分)

                 持續更新中……


L1-001 Hello World (5 分)

這道超級簡單的題目沒有任何輸入。

你只需要在一行中輸出著名短句“Hello World!”就可以了。

輸入樣例:

輸出樣例:

Hello World!

題目代碼:

#include<stdio.h>

int main()
{
  printf("Hello World!\n");
  return 0;
}

L1-002 列印沙漏 (20 分)

本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印

*****
 ***
  *
 ***
*****

所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。

給定任意N個符號,不一定能正好組成一個沙漏。要求列印出的沙漏能用掉儘可能多的符號。

輸入格式:

輸入在一行給出1個正整數N(≤1000)和一個符號,中間以空格分隔。

輸出格式:

首先列印出由給定符號組成的最大的沙漏形狀,最後在一行中輸出剩下沒用掉的符號數。

輸入樣例:

19 *

輸出樣例:

*****
 ***
  *
 ***
*****
2

 題目代碼:

#include <stdio.h>
int main()
{
    int n;
    char c;
    scanf("%d %c",&n,&c);
    int sum=1;//沙漏需要的字元個數
    int i=1;//層數
    while(sum<=n)
    {
        sum+=2*(2*(i+1)-1);//2n-1是一層的個數,乘以2代表兩層一共需要的
        if(sum<=n)
            i++;
    }
    int j,k;
    for(j=0;j<i;j++)//列印上半部分
    {
            for(k=0;k<j;k++)
            printf(" ");
        for(k=0;k<2*(i-j)-1;k++)
        {
            printf("%c",c);
        }//輸出*


        printf("\n");
    }
    for(j=2;j<=i;j++)
    {
           for(k=0;k<i-j;k++)
            printf(" ");
        for(k=0;k<2*j-1;k++)
        {
            printf("%c",c);
        }


        printf("\n");
    }
    printf("%d",n-(sum-2*(2*(i+1)-1)));


}

L1-003 個位數統計 (15 分)

給定一個 k 位整數 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定 N=100311,則有 2 個 0,3 個 1,和 1 個 3。

輸入格式:

每個輸入包含 1 個測試用例,即一個不超過 1000 位的正整數 N。

輸出格式:

對 N 中每一種不同的個位數字,以 D:M 的格式在一行中輸出該位數字 D 及其在 N 中出現的次數 M。要求按 D 的升序輸出。

輸入樣例:

100311

輸出樣例:

0:2
1:3
3:1

題目代碼:

#include<iostream>
#include<cstring>
#define MAXN 1001
using namespace std;

int main()
{
	char s[MAXN];
	int book[10]={0};
	scanf("%s",s);
	for(int i=0;i<strlen(s);i++)
		book[s[i]-48]++;		
	for(int i=0;i<10;i++)
	{
		if(book[i]!=0)
			cout << i << ":" << book[i] << endl;
	}
	return 0; 
}

L1-004 計算攝氏溫度 (5 分)

給定一個華氏溫度F,本題要求編寫程式,計算對應的攝氏溫度C。計算公式:C=5×(F−32)/9。題目保證輸入與輸出均在整型範圍內。

輸入格式:

輸入在一行中給出一個華氏溫度。

輸出格式:

在一行中按照格式“Celsius = C”輸出對應的攝氏溫度C的整數值。

輸入樣例:

150

輸出樣例:

Celsius = 65

題目代碼:

#include<iostream>

using namespace std;

int main()
{
	int n,c;
	scanf("%d",&n);
	c=5*(n-32)/9;
	printf("Celsius = %d\n",c);
	return 0;
 } 

L1-005 考試座位號 (15 分)

每個 PAT 考生在參加考試時都會被分配兩個座位號,一個是試機座位,一個是考試座位。正常情況下,考生在入場時先得到試機座位號碼,入座進入試機狀態後,系統會顯示該考生的考試座位號碼,考試時考生需要換到考試座位就座。但有些考生遲到了,試機已經結束,他們只能拿著領到的試機座位號碼求助於你,從後臺查出他們的考試座位號碼。

輸入格式:

輸入第一行給出一個正整數 N(≤1000),隨後 N 行,每行給出一個考生的信息:准考證號 試機座位號 考試座位號。其中准考證號由 14 位數字組成,座位從 1 到 N 編號。輸入保證每個人的准考證號都不同,並且任何時候都不會把兩個人分配到同一個座位上。

考生信息之後,給出一個正整數 M(≤N),隨後一行中給出 M 個待查詢的試機座位號碼,以空格分隔。

輸出格式:

對應每個需要查詢的試機座位號碼,在一行中輸出對應考生的准考證號和考試座位號碼,中間用 1 個空格分隔。

輸入樣例:

4
10120150912233 2 4
10120150912119 4 1
10120150912126 1 3
10120150912002 3 2
2
3 4

輸出樣例:

10120150912002 2
10120150912119 1

題目代碼:

//L1-005 考試座位號
#include<iostream>
#define MAXN 1001
using namespace std;

struct STU{
	char s[15];
	int shiji;
	int kaoshi;
};

int main()
{
	struct STU stu[MAXN]={0};
	int N,M;
//	int a[MAXN][MAXN]={0};
	cin >> N;
	for(int i=0;i<N;i++)
		scanf("%s %d %d",stu[i].s,&stu[i].shiji,&stu[i].kaoshi);
	int k;
	scanf("%d",&M);
	for(int i=0;i<M;i++)
	{
		scanf("%d",&k);
		for(int j=0;j<N;j++)
			if(k==stu[j].shiji)
			{
				cout << stu[j].s << " " << stu[j].kaoshi << endl;
				break;
			}
	}
	return 0;
}

L1-006 連續因數 (20 分)

一個正整數 N 的因數中可能存在若幹連續的數字。例如 630 可以分解為 3×5×6×7,其中 5、6、7 就是 3 個連續的數字。給定任一正整數 N,要求編寫程式求出最長連續因數的個數,並輸出最小的連續因數序列。

輸入格式:

輸入在一行中給出一個正整數 N(1<N<2​31​​)。

輸出格式:

首先在第 1 行輸出最長連續因數的個數;然後在第 2 行中按 因數1*因數2*……*因數k 的格式輸出最小的連續因數序列,其中因數按遞增順序輸出,1 不算在內。

輸入樣例:

630

輸出樣例:

3
5*6*7

題目代碼 :

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
int main()
{
	ll n;
	cin>>n;
	ll prd=0;//定義乘積 
	int start=0,len=0;//定義最終得到序列開始的因數,序列的長度 
	for(int i=2;i<=sqrt(n);i++)//i從2到根號n 
	{
		prd=1;
		for(int j=i;prd*j<=n;j++)//從j開始一直乘到N為止,每次乘積判定是否小於等於N,若超過N,則結束迴圈 
		{
			prd*=j;//乘積迭代 
			if(n%prd==0&&j-i+1>len)//如果當前乘積為N的乘積因數且長度大於上一次 
			{//更新序列起始因數和長度 
				start=i;
				len=j-i+1;
			}
		}
	}
	if(start==0)//若起始因數為0,說明N為質數,因為質數=1*本身,而迴圈最多能表示1*本身的根號 
	{
		start=n;
		len=1;
	}
	cout<<len<<'\n'<<start;
	for(int i=start+1;i<start+len;i++)//輸出,如果因數只有一個只輸出一個 
	cout<<'*'<<i;
	return 0;
}

L1-007 念數字 (10 分)

輸入一個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出fu字。十個數字對應的拼音如下:

0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu

輸入格式:

輸入在一行中給出一個整數,如:1234

提示:整數包括負數、零和正數。

輸出格式:

在一行中輸出這個整數對應的拼音,每個數字的拼音之間用空格分開,行末沒有最後的空格。如 yi er san si

輸入樣例:

-600

輸出樣例:

	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第一個問題:什麼是作用域? 第二個問題:作用域在上面情況下形成? 第三個問題:什麼是變數提升,作用域鏈? 第四個問題:“=”賦值運算 第五個問題:生成對象的有幾種方式? 第六個問題:面向對象的三大特點 第七個問題:原型鏈 第八個問題:prototype和__proto__的區別? 第九個問題:jso ...
  • 責任鏈模式為請求創建了一個接受者對象的鏈。這種模式給予請求的類型,對請求的發送者和接受者進行解耦。這種類型的設計模式屬於行為模式。在這種模式下,通常每個接收者都包含對另一個接收者的引用。如果一個對象不能處理該對象,那麼它會把相同的請求傳給下一個接收者,以此類推 ...
  • 解釋器模式 解釋器模式是類的行為模式。給定一個語言之後,解釋器模式可以定義出其文法的一種表示,並同時提供一個解釋器。客戶端可以使用這個解釋器來解釋這個語言中的句子。 意圖 給定一個語言,定義它的文法表示,並定義一個解釋器,這個解釋器使用該標識來解釋語言中的句子。 主要解決 對於一些固定文法構建一個解 ...
  • Java集合類主要由兩個根介面Collection和Map派生出來的,Collection派生出了三個子介面:List、Set、Queue(Java5新增的隊列),因此Java集合大致也可分成List、Set、Queue、Map四種介面體系,(註意:Map不是Collection的子介面)。 ...
  • [TOC] 簡介 服務之間的同步調用,可以使用 HTTP 或 RPC 來完成,但並非所有的調用都需要同步,有些場景下,當客戶端調用服務端時,並不需要等待服務端做出響應,此時就應該使用非同步調用。非同步調用的常用方式是基於 MQ (Message Queue) 來實現的。下文會以 ActiveMQ 為例進 ...
  • 1 import smtplib 2 from email.mime.text import MIMEText 3 from email.mime.multipart import MIMEMultipart 4 """多用戶及帶附件發送郵件代碼""" 5 6 smtpserver = 'smtp.... ...
  • 都說 Go 的語法簡單,學習之後發現,其中的坑真不少,論語法簡單,只服 Python ...
  • 1、git clone https://github.com/sshwsfc/xadmin.git或者直接下載zip包 2.、在項目根目錄下建一個extra_apps的包,將xadmin源碼包存放在裡面 3、安裝xadmin所需要的依賴包 4、在setting中註冊以上安裝的依賴包 5、由於在ext ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...