1. 程式人生 > 其它 >吳凡的題庫——快快程式設計251-300

吳凡的題庫——快快程式設計251-300

  1. 收入支出查詢
題目描述
小明他以每天為單位把每一天的總收入或支出都記錄下來,共n天,正數代表收入,負數代表支出。有一天他老婆突然對他進行查賬,提出共m個查詢問 題,每個問題都是關心某兩天之間(從第i天開始到第j天結束)的存款變了多少
輸入輸出格式
輸入格式
輸入第一行為n和m(1<=n,m<=10000),第二行為n個整數代表當天的收入或支出,第三行為2*m個正整數,每兩個數代表一次查詢的起始日期和結束日期
輸出格式
輸出一行共m個數,代表每一個查詢結果。數字由空格隔開。
輸入輸出樣例
輸入樣例#1:
5 2
100 -200 60 10 -10
1 3 4 5
輸出樣例#1:
-40 0
輸入樣例#2:
無
輸出樣例#2:
無
輸入樣例#3:
無
輸出樣例#3:
無
#include<iostream>
using namespace std;
int main(){
	int n,m,d[10009],t;
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>d[i];
	for(int i=1;i<=m;i++){
		int x,y;
		cin>>x>>y;
		t=0;
		for(int j=x;j<=y;j++) t+=d[j];
		cout<<t<<" ";
	}
	return 0;
}
  1. 金幣
題目描述
國王將金幣作為工資,發放給忠誠的騎士。第一天,騎士收到一枚金幣;之後兩天(第二天和第三天),每天收到兩枚金幣;之後三天(第四、五、六 天),每天收到三枚金幣;之後四天(第七、八、九、十天),每天收到四枚金幣……;這種工資發放模式會一直這樣延續下去:當連續N天每天收到N枚 金幣後,騎士會在之後的連續N+1天裡,每天收到N+1枚金幣。 請計算在前K天裡,騎士一共獲得了多少金幣。K<=10000
輸入輸出格式
輸入格式
輸入只有1行,包含一個正整數K,表示發放金幣的天數。
輸出格式
輸出只有1行,包含一個正整數,即騎士收到的金幣數。
輸入輸出樣例
輸入樣例#1:
6
輸出樣例#1:
14
輸入樣例#2:

輸出樣例#2:

輸入樣例#3:

輸出樣例#3:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int k;
	int sum=0;
	int n=1;
	int cnt=0;
	cin>>k;
	for(int i=1;i<=k;i++){
		sum+=n;
		cnt++;
		if(cnt==n){
			cnt=0;
			n++;
		}
	}
	cout<<sum;
	return 0;
} 
  1. 螺旋矩陣(同150)

  2. 進位制轉換

題目描述
將一個十進位制數X(1≤X≤10^9)轉換成任意進位制數M(2≤M≤16)。當進位制超過10後,依次以字元A,B,…,F表示數位上的數字。
輸入輸出格式
輸入格式
輸入一行兩個正整數X和M。
輸出格式
輸出X的M進位制的表示。
輸入輸出樣例
輸入樣例#1:
31 16
輸出樣例#1:
1F
輸入樣例#2:
7 2
輸出樣例#2:
111
輸入樣例#3:

輸出樣例#3:

#include<iostream>
#include<string>
using namespace std;
int main(){
    int top=0,m, n;
    int s[10001];
    cin>>n>>m;
    do{
        s[++top]=n%m;
        n=n/m;
    }while(n>0);
    for(int i=top;i>=1;i--)
        if(s[i]>=10)  cout<<char('A'+s[i]-10);
        else cout<<s[i];
	return 0;
}
  1. 素數對
題目描述
兩個相差為2的素數稱為素數對,如5和7是素數對,9和7不是素數對,2和5不是素數對。輸入2個正整數,判斷它們是不是素數對,如果是,輸出Yes,否則輸出No。
輸入輸出格式
輸入格式
輸入檔案pair.in 輸入一行包含2個正整數,以空格分開,均不超過1000000。
輸出格式
輸出檔案pair.out 輸出Yes或者No,代表是否是素數對。
輸入輸出樣例
輸入樣例#1:
19 17
輸出樣例#1:
Yes
輸入樣例#2:
2 5
輸出樣例#2:
No
輸入樣例#3:
3 1
輸出樣例#3:
No
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int x){
	if(x<=1)return 0;
	for(int i = 2;i * i <= x; i ++){
		if(x%i==0)return 0;
	}
	return 1;
}
int main(){
	freopen("pair.in", "r", stdin);
	freopen("pair.out", "w", stdout);
	int a, b;
	cin>>a>>b;
	if((abs(a-b)==2)&&isPrime(a)&&isPrime(b))
	    cout<<"Yes";
	else
	    cout<<"No";
	return 0;
}
  1. 三數求和
題目描述
請寫一個程式,輸入3個整數a,b,c,用空格分開,輸出這3個數的和。
輸入輸出格式
輸入格式
輸入的一行共三個整數。保證輸入的數不會超過1000000000請不用擔心。
輸出格式
輸出一個整數,代表這三個數的總和
輸入輸出樣例
輸入樣例#1:
2 4 6
輸出樣例#1:
12
輸入樣例#2:
1 2 3
輸出樣例#2:
6
輸入樣例#3:
1 1 1
輸出樣例#3:
3
#include<iostream>
using namespace std;
int a,b,c;
int main(){
	cin>>a>>b>>c;
	cout<<a + b + c;
	return 0;
}