吳凡的題庫——快快程式設計1701+
阿新 • • 發佈:2022-04-10
- 非常棒
題目描述
請寫一個程式,使用一句Very good介面,具體形狀請參考下文中的輸出樣例。
注意:
一共3行,每一行都有一個換行,行之間不能有多餘空行;
行末不應該出現多餘空格。
輸入輸出格式
輸入格式
無
輸出格式
無
輸入輸出樣例
輸入樣例#1:
無
輸出樣例#1:
**********
Very good!
**********
輸入樣例#2:
輸出樣例#2:
輸入樣例#3:
輸出樣例#3:
#include<iostream> using namespace std; int main(){ cout<<"**********"<<endl; cout<<"Very good!"<<endl; cout<<"**********"<<endl; return 0; }
- 美麗的等邊三角形
題目描述
請寫一個程式,輸出一個等邊三角形,具體形狀請參考下文中的輸出樣例。
注意:
一共3行,每一行都有一個換行,行之間不能有多餘空行。
行末不應該出現多餘空格。
第3行開頭沒有空格。
同一行的*號之間可能需要空格。
輸入輸出格式
輸入格式
無
輸出格式
無
輸入輸出樣例
輸入樣例#1:
無
輸出樣例#1:
*
* *
* * *
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<iostream> using namespace std; int main(){ cout<<" *"<<endl; cout<<" * *"<<endl; cout<<"* * *"<<endl; return 0; }
- 口算王子
題目描述
口算王子就是你,兩個數字間的運算對你來說就是小菜一碟。已知一條計算式子,請你回答出計算結果。
輸入輸出格式
輸入格式
輸入檔案calculation.in 輸入一行包含一條算式,包含兩個正整數a,b,均不超過10^9。這兩個數中間有一個運算子號c,可能是加號+ ,或者減號-,或者乘號*。這一行內沒有空格。
輸出格式
輸出檔案calculation.out 輸出一個整數。
輸入輸出樣例
輸入樣例#1:
3+6
輸出樣例#1:
9
輸入樣例#2:
6*16
輸出樣例#2:
96
輸入樣例#3:
12345*54321
輸出樣例#3:
670592745
#include<bits/stdc++.h> using namespace std; int main(){ freopen("calculation.in", "r", stdin); freopen("calculation.out", "w", stdout); long long a, b, ans; char c; cin>>a>>c>>b; if(c == '+') ans=a+b; else if (c == '-') ans=a-b; else ans=a*b; cout<<ans<<endl; return 0; }
- 閏年統計
題目描述
給定兩個年份a,b ,請統計從a到b的年份裡有幾個閏年。
注意:統計時包含a,b兩年本身在內。
輸入輸出格式
輸入格式
輸入檔案leapyear.in 輸入一行為正整數a,b,1<=a<=b<=9999。
輸出格式
輸出檔案leapyear.out 輸出一個整數。
輸入輸出樣例
輸入樣例#1:
2000 2020
輸出樣例#1:
6
輸入樣例#2:
21 23
輸出樣例#2:
0
輸入樣例#3:
輸出樣例#3:
#include<bits/stdc++.h>
using namespace std;
bool isLeap(int y){
return y%400==0||y%4==0&&y%100!=0;
}
int main(){
freopen("leapyear.in", "r", stdin);
freopen("leapyear.out", "w", stdout);
int a,b,cnt;
cin>>a>>b;
for(int i = a;i <= b; i++){
if(isLeap(i))
cnt++;
}
cout<<cnt<<endl;
return 0;
}
- 迴文數統計
題目描述
輸入n個正整數,判斷每個數是否為迴文數。
輸入輸出格式
輸入格式
輸入檔案palindrome.in 輸入第一行為正整數n,n<=100。第二行為n個正整數,由空格隔開,均不超過10^18。
輸出格式
輸出檔案palindrome.out 輸出一行,共n個結果,每個結果為Yes或No,由空格隔開。
輸入輸出樣例
輸入樣例#1:
5
2020 12321 567765 1991 2000000
輸出樣例#1:
No Yes Yes Yes No
輸入樣例#2:
輸出樣例#2:
輸入樣例#3:
輸出樣例#3:
#include<bits/stdc++.h>
using namespace std;
bool isHW(string s){
int l=0;
int r=s.size()-1;
while(l<r){
if(s[l]!=s[r])
return 0;
l++;
r--;
}
return 1;
}
int main(){
freopen("palindrome.in", "r", stdin);
freopen("palindrome.out", "w", stdout);
int n;
cin>>n;
for(int i = 0; i < n;++i){
string s;
cin>>s;
if(isHW(s))
cout<<"Yes"<<" ";
else
cout<<"No"<<" ";
}
return 0;
}
- 西佳佳偶像天團0
題目描述
西佳佳偶像天團共k人,編號1到k。第i人的顏值為x[i],團內顏值最低者成為團長,若有多人一樣醜,就選編號最小的那人。求團長是幾號,顏值是多 少。
輸入輸出格式
輸入格式
輸入檔案idol.in 輸入第一行為k,1<=k<=200000。第二行為k個正整數,每個數都不超過100000。
輸出格式
輸出檔案idol.out 輸出共2個數字,由空格隔開。
輸入輸出樣例
輸入樣例#1:
10
4 3 2 1 2 3 4 5 4 6
輸出樣例#1:
4 1
輸入樣例#2:
5
7 6 9 7 6
輸出樣例#2:
2 6
輸入樣例#3:
輸出樣例#3:
#include<bits/stdc++.h>
using namespace std;
int main(){
freopen("idol.in", "r", stdin);
freopen("idol.out", "w", stdout);
int n,idols[200001];
cin>>n;
for(int i = 0; i < n; i ++){
cin>>idols[i];
}
cout<<min_element(idols, idols+n) - idols + 1<<" "<<*min_element(idols, idols + n);
return 0;
}
- 長方形面積
題目描述
請計算下面長方形的面積,結果保留2位小數。
長方形的面積計算公式:面積=長*寬
第一行輸出第一個長方形的面積:長3,寬2,注意結果要保留2位小數
第二行輸出第二個長方形的面積:長4,寬2.6,注意結果要保留2位小數
第三行輸出第三個長方形的面積:長5.4,寬5.6,注意結果要保留2位小數
輸入輸出格式
輸入格式
無
輸出格式
見題目描述
輸入輸出樣例
輸入樣例#1:
無
輸出樣例#1:
無
輸入樣例#2:
輸出樣例#2:
輸入樣例#3:
輸出樣例#3:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
cout<<fixed<<setprecision(2)<<3.0 * 2.0<<endl;
cout<<fixed<<setprecision(2)<<4.0 * 2.6<<endl;
cout<<fixed<<setprecision(2)<<5.4 * 5.6<<endl;
return 0;
}
- 最高的山
題目描述
有n座山,編號從1到n,第i座山的高度為hi,請問其中最高的山是哪一座?
輸入輸出格式
輸入格式
第一行一個正整數n,表示山的數量,n<=1000。
第二行n個正整數,中間由空格隔開。山的高度不超過10000。
輸出格式
一個正整數,最高的山最早出現的編號。
輸入輸出樣例
輸入樣例#1:
5
1 2 3 4 6
輸出樣例#1:
5
輸入樣例#2:
5
6 4 3 2 1
輸出樣例#2:
1
輸入樣例#3:
輸出樣例#3:
#include<iostream>
using namespace std;
int main(){
int n,high[10005],num;
cin>>n;
for(int i = 0;i < n;i++){
cin>>high[i];
}
num = 0;
for(int i = 0;i < n;i++){
if(high[i] > high[num])
num = i;
}
cout<<num + 1;
return 0;
}
- 口算王
題目描述
口算大王就是你,幾個數字間的四則運算對你來說就是小菜一碟。已知一條計算式子,請你回答出計算結果。例如:
3-5=-2
1+2*3=7
8-2*2-1=3
輸入輸出格式
輸入格式
100。
【資料規模】
10%資料, 全部數字都是1位數
10%資料, 恰有1個運算子號
10%資料, 恰有2個運算子號
100%資料, 最多有8個運算子號。
輸出格式
輸出檔案calculator.out 輸出一個整數,代表計算結果。
輸入輸出樣例
輸入樣例#1:
3-5
輸出樣例#1:
-2
輸入樣例#2:
10-2*2-1
輸出樣例#2:
5
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
using namespace std;
stack<int> num;
stack<char> op;
void solve(){
while(!op.empty()){
char z=op.top();
op.pop();
int y=num.top();
num.pop();
int x=num.top();
num.pop();
if(z=='+')x+=y;
else x-=y;
num.push(x);
}
}
int main(){
freopen("calculator.in","r",stdin);
freopen("calculator.out","w",stdout);
int a,b;
char c;
cin>>a;
num.push(a);
while(cin>>c>>b){
if(c=='*'){
a=num.top();
num.pop();
a*=b;
num.push(a);
}
else{
solve();
op.push(c);
num.push(b);
}
}
solve();
cout<<num.top()<<endl;
return 0;
}
- train-螺旋矩陣(同150,271)
- train-排座椅(同504)
- 高手集訓
題目描述
太戈程式設計團隊聚集了本市眾多的程式設計高手。你作為總教練,要為高手們安排集訓計劃。課程表裡有連續的n天可以供你選擇,每天都有專 題課程。其中第i天的專題趣味程度為h[i]。假設你選擇了其中連續的若干天,從第l天到第r天。那麼,
訓練效果 = h[l]*1 + h[l+1]*2 + ... + h[r]*(r-l+1)
隨著訓練的深入進行,每天的趣味程度會得到更多倍數的效果。
目前有m種訓練方案,每種方案由起始時間和結束時間來描述。請對每種方案輸出訓練效果。
輸入輸出格式
輸入格式
輸入檔案training.in
輸入第一行為正整數n和m, 均不超過100000。第二行為n個正整數代表每天專題的趣味程度,均不超過100000。隨後共m行,每行為兩個正整數l,r, 保證1<=l<=r<=n。
輸出格式
輸出檔案training.out
輸出一行共m個整數,由空格隔開。
輸入輸出樣例
輸入樣例#1:
3 2
5 6 7
1 3
2 3
輸出樣例#1:
38 20
【說明】5*1+6*2+7*3=38;6*1+7*2=20。
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<bits/stdc++.h>
#define N 100003
#define int long long
using namespace std;
int h[N],s[N],g[N],n,m,l,r;
void input(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>h[i];
}
void solveBF(){
for(int i=1;i<=m;i++){
cin>>l>>r;
int ans=0;
for(int j=l;j<=r;j++)ans+=h[j]*(j-l+1);
cout<<ans<<" ";
}
}
void solve(){
for(int i=1;i<=n;i++)s[i]=s[i-1]+h[i];
for(int i=1;i<=n;i++)g[i]=g[i-1]+h[i]*i;
for(int i=1;i<=m;i++){
cin>>l>>r;
cout<<g[r]-g[l-1]-(s[r]-s[l-1])*(l-1)<<" ";
}
}
signed main(){
freopen("training.in","r",stdin);
freopen("training.out","w",stdout);
input();
if(n<=1000&&m<=1000)solveBF();
else solve();
return 0;
}