1. 程式人生 > >團體程式設計天梯賽-練習集 L1合集

團體程式設計天梯賽-練習集 L1合集

L1-001. Hello World

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

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

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
int main(){
    cout<<"Hello World!"<<endl;
}

L1-002. 列印沙漏

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳越

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

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

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

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

輸入格式:

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

輸出格式:

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

輸入樣例:
19 *
輸出樣例:
*****
 ***
  *
 ***
*****
2
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
int main(){
    int n;string s;
    cin>>n>>s;
    int m=1,i=3;
    for(;;i+=2){
        if(m+i*2>n) break;
        m+=i*2;
    }
    i-=2;
    for(int j=0;j<=i/2;j++){
        for(int k=0;k<j;k++)
            cout<<" ";
        for(int k=0;k<i-j*2;k++)
            cout<<s;
        cout<<endl;
    }
    for(int j=i/2-1;j>=0;j--){
        for(int k=0;k<j;k++)
            cout<<" ";
        for(int k=0;k<i-j*2;k++)
            cout<<s;
        cout<<endl;
    }
    cout<<n-m<<endl;
}

L1-003. 個位數統計

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳越

給定一個k位整數N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-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 <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
int a[11];
int main(){
    string s;
    cin>>s;
    int len=s.length();
    for(int i=0;i<len;i++){
        a[s[i]-'0']++;
    }
    for(int i=0;i<=9;i++){
        if(a[i]) printf("%d:%d\n",i,a[i]);
    }
}

L1-004. 計算攝氏溫度

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳建海

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

輸入格式:

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

輸出格式:

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

輸入樣例:
150
輸出樣例:
Celsius = 65
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
int a[11];
int main(){
    int n;
    cin>>n;
    n=(n-32)*5/9;
    cout<<"Celsius = "<<n<<endl;
}

L1-005. 考試座位號

時間限制200 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳越

每個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
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
struct Node{
  string a,b,c;
}a[10005];
int main(){
    int n;
    cin>>n;
    string x,y,z;
    for(int i=1;i<=n;i++){
        cin>>x>>y>>z;
        a[i].a=x;a[i].b=y;a[i].c=z;
    }
    int m;
    cin>>m;
    for(int i=1;i<=m;i++){
        cin>>x;
        for(int j=1;j<=n;j++){
            if(a[j].b==x) cout<<a[j].a<<" "<<a[j].c<<endl;
        }
    }
}

L1-006. 連續因子

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳越

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

輸入格式:

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

輸出格式:

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

輸入樣例:
630
輸出樣例:
3
5*6*7
//2^31為2147483648
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
typedef long long LL;
int main(){
    LL n,m,ans,tmp,cnt=0,cntp=0;
    scanf("%lld",&n);
    m=LL(sqrt(n))+1;
    for(LL i=2;i<=m;i++){
        if(n%i==0){
            tmp=i;
            cntp=1;
            for(LL j=i+1;j<=m;j++){
                tmp*=j;
                if(n%tmp!=0)
                    break;
                cntp++;
            }
            if(cntp>cnt) cnt=cntp,ans=i;
        }
    }
    if(cnt==0){
        printf("1\n%lld\n",n);
    }
    else{
        printf("%lld\n",cnt);
        for(LL i=ans;i<ans+cnt-1;i++){
            printf("%lld*",i);
        }
        printf("%lld\n",ans+cnt-1);
    }
}

L1-007. 念數字

時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard作者翁愷

輸入一個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出“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
輸出樣例:
fu liu ling ling
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
typedef long long LL;
int main(){
    string s[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    string fu="fu";
    string a;
    cin>>a;
    int len=a.length();
    for(int i=0;i<len;i++){
        if(a[i]=='-') cout<<fu;
        else cout<<s[a[i]-'0'];
        if(i!=len-1) cout<<" ";
        else cout<<endl;
    }
}

L1-008. 求整數段和

時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard作者楊起帆

給定兩個整數A和B,輸出從A到B的所有整數以及這些數的和。

輸入格式:

輸入在一行中給出2個整數A和B,其中-100<=A<=B<=100,其間以空格分隔。

輸出格式:

首先順序輸出從A到B的所有整數,每5個數字佔一行,每個數字佔5個字元寬度,向右對齊。最後在一行中輸出全部數字的和。

輸入樣例:
-3 8
輸出樣例:
   -3   -2   -1    0    1
    2    3    4    5    6
    7    8
Sum = 30
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
typedef long long LL;
int main(){
    int a,b,sum=0;
    cin>>a>>b;
    for(int i=a;i<=b;i++){
        if((i-a)%5==0&&i>a) cout<<endl;
        printf("%5d",i);
        sum+=i;
    }
    printf("\nSum = %d",sum);
}

L1-009. N個數求和

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳越

本題的要求很簡單,就是求N個數字的和。麻煩的是,這些數字是以有理數“分子/分母”的形式給出的,你輸出的和也必須是有理數的形式。

輸入格式:

輸入第一行給出一個正整數N(<=100)。隨後一行按格式“a1/b1 a2/b2 ...”給出N個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號一定出現在分子前面。

輸出格式:

輸出上述數字和的最簡形式 —— 即將結果寫成“整數部分 分數部分”,其中分數部分寫成“分子/分母”,要求分子小於分母,且它們沒有公因子。如果結果的整數部分為0,則只輸出分數部分。

輸入樣例1:
5
2/5 4/15 1/30 -2/60 8/3
輸出樣例1:
3 1/3
輸入樣例2:
2
4/3 2/3
輸出樣例2:
2
輸入樣例3:
3
1/3 -1/6 1/8
輸出樣例3:
7/24
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
typedef long long LL;
LL lcm(LL a,LL b){
    return a/__gcd(a,b)*b;
}
int main(){
    LL n,fm=1;
    LL a[105][2];
    string s;
    cin>>n;
    for(LL i=1;i<=n;i++){
        cin>>s;
        LL x=0,len=s.length(),flag=1,j;
        for(j=0;j<len;j++){
            if(s[j]=='-') flag=0;
            else if(s[j]=='/') break;
            else x=x*10+s[j]-'0';
        }
        if(flag==0) x=-x;
        a[i][0]=x;
        if(j==len){
            a[i][1]=1;
            continue;
        }
        flag=1,x=0;
        for(j++;j<len;j++)
            x=x*10+s[j]-'0';
        if(flag==0) x=-x;
        a[i][1]=x;
        fm=lcm(x,fm);
    }
    LL fz=0;
    for(LL i=1;i<=n;i++)
        fz+=fm/a[i][1]*a[i][0];
    LL ans1=fz/fm,ans2=abs(fz)%fm;
    LL t=__gcd(ans2,fm);
    ans2/=t;fm/=t;
    if(ans1) cout<<ans1;
    else if(!ans2) cout<<ans1;
    if(ans2){
        if(ans1) cout<<" ";
        else if(fz<0) ans2=-ans2;
        cout<<ans2<<"/"<<fm;
    }
    cout<<endl;
}

L1-010. 比較大小

時間限制400 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者楊起帆(浙江大學城市學院)

本題要求將輸入的任意3個整數從小到大輸出。

輸入格式:

輸入在一行中給出3個整數,其間以空格分隔。

輸出格式:

在一行中將3個整數從小到大輸出,其間以“->”相連。

輸入樣例:
4 2 8
輸出樣例:
2->4->8
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
using namespace std;
typedef long long LL;
int main(){
    int a[3];
    cin>>a[0]>>a[1]>>a[2];
    sort(a,a+3);
    cout<<a[0]<<"->"<<a[1]<<"->"<<a[2]<<endl;
}

L1-011. A-B

時間限制100 ms
記憶體限制65536 kB
程式碼長度限制8000 B
判題程式Standard作者陳越

本題要求你計算A-B。不過麻煩的是,A和B都是字串 —— 即從字串A中把字串B所包含的字元全刪掉,剩下的字元組成的就是字串A-B。

輸入格式:

輸入在2行中先後給出字串A和B。兩字串的長度都不超過104,並且保證每個字串都是由可見的ASCII碼和空白字元組成,最後以換行符結束。

輸出格式:

在一行中打印出A-B的結果字串。

輸入樣例:
I love GPLT!  It's a fun game!
aeiou
輸出樣例:
            
           

相關推薦

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

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

團體程式設計天梯-練習 L1

L1-001. Hello World這道超級簡單的題目沒有任何輸入。你只需要在一行中輸出著名短句“Hello World!”就可以了。時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard#include <iostream&

團體程式設計天梯-練習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%。本題就請你計算一個

團體程式設計天梯-練習 L1階段 全部題解

當芸芸眾生忙著在朋友圈中發照片的時候,總有一些人因為太帥而沒有朋友。本題就要求你找出那些帥到沒有朋友的人。 輸入格式: 輸入第一行給出一個正整數N(<=100),是已知朋友圈的個數;隨後N行,每行首先給出一個正整數K(<=1000),為朋友圈中的人數,然後列出一個朋友圈內的所有

L1-031. 到底是不是太胖了 團體程式設計天梯-練習

題目 據說一個人的標準體重應該是其身高(單位:釐米)減去100、再乘以0.9所得到的公斤數。真實體重與標準體重誤差在10%以內都是完美身材(即 |真實體重-標準體重| < 標準體重x10%)。已知1市斤=0.5公斤。現給定一群人的身高和實際體重,請你告訴他們是否太胖或太瘦了。 輸入格

PTA 團體程式設計天梯-練習 L1-034 點贊(20 分)C語言

L1-034 點贊(20 分) 微博上有個“點贊”功能,你可以為你喜歡的博文點個贊表示支援。每篇博文都有一些刻畫其特性的標籤,而你點讚的博文的型別,也間接刻畫了你的特性。本題就要求你寫個程式,通過統計一個人點讚的紀錄,分析這個人的特性。 輸入格式: 輸入在第一行給出一個

PTA 團體程式設計天梯-練習 L1-033 出生年(15 分)Java

L1-033 出生年(15 分) 以上是新浪微博中一奇葩貼:“我出生於1988年,直到25歲才遇到4個數字都不相同的年份。”也就是說,直到2013年才達到“4個數字都不相同”的要求。本題請你根據要求,自動填充“我出生於y年,直到x歲才遇到n個數字都不相同的年份”這句話。

團體程式設計天梯-練習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-013. 計算階乘和(Java)PAT團體程式設計天梯-練習

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

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

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

團體程式設計天梯-練習L1-022. 奇偶分家

L1-022. 奇偶分家 時間限制 400 ms 記憶體限制 65536 kB 程式碼長度限制 8000 B 判題程式 Standard 作者 陳越 給定N個正整數,請統計奇數和偶

L1-031. 到底是不是太胖了(JAVA) PAT團體程式設計天梯-練習

據說一個人的標準體重應該是其身高(單位:釐米)減去100、再乘以0.9所得到的公斤數。真實體重與標準體重誤差在10%以內都是完美身材(即 |真實體重-標準體重| < 標準體重x10%)。已知1市斤=0.5公斤。現給定一群人的身高和實際體重,請你告訴他們是否

團體程式設計天梯-練習 L1-031. 到底是不是太胖了

據說一個人的標準體重應該是其身高(單位:釐米)減去100、再乘以0.9所得到的公斤數。真實體重與標準體重誤差在10%以內都是完美身材(即 |真實體重-標準體重| < 標準體重x10%)。已知1市斤=0.5公斤。現給定一群人的身高和實際體重,請你告訴他們是否太胖或太瘦了。 輸入格式: 輸入第一行給

團體程式設計天梯-練習L1-009. *N個數求和

本題的要求很簡單,就是求N個數字的和。麻煩的是,這些數字是以有理數“分子/分母”的形式給出的,你輸出的和也必須是有理數的形式。 輸入格式: 輸入第一行給出一個正整數N(<=100)。隨後一行按格式“a1/b1 a2/b2 ...”給出N個有理數。題目保證所有分子和分母都在長整型範圍內。另外,負數的符號

Java 團體程式設計天梯-練習-列印沙漏

本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個“*”,要求按下列格式列印 ***** *** * *** ***** 所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。

團體程式設計天梯-練習L2-011 玩轉二叉樹(構造二叉樹+BFS)

給定一棵二叉樹的中序遍歷和前序遍歷,請你先將樹做個鏡面反轉,再輸出反轉後的層序遍歷的序列。所謂鏡面反轉,是指將所有非葉結點的左右孩子對換。這裡假設鍵值都是互不相等的正整數。 輸入格式: 輸入第一行給出一個正整數N(<=30),是二叉樹中結點的個數。第二行給出其中序遍歷序列。第三行給出其前序遍歷序列。數

團體程式設計天梯-練習 L3-021 神壇

題目:點選開啟連結 題意:給出n個點,求出面積最小的三角形。(n<=5000) 分析:以一個點為中心,其他點圍繞這個點做一個極角排序,找出最小的三角形,三角形只能是這個點和相鄰兩個點組成的三

[java] PTA-團體程式設計天梯-練習(2018){更新中}

L1-001 Hello World(5 分) 這道超級簡單的題目沒有任何輸入。 你只需要在一行中輸出著名短句“Hello World!”就可以了。 /** * @author 莫道 * @描述 XXX * @ClassName L1_001_Hello_Wor