PAT乙级练习
题号 | 题目 |
---|---|
1001 | 采花生 |
1002 | NowCoder数列 |
1003 | 养兔子 |
1004 | 客似云来 |
1005 | 斐波那契凤尾 |
1006 | 星际密码 |
1007 | 母牛的故事 |
1008 | 童年生活二三事 |
1009 | 蜜蜂寻路 |
1010 | 骨牌铺方格 |
1011 | NowCoder小定律 |
1012 | 分数运算 |
1013 | 分解因数 |
1014 | 因子个数 |
1015 | skew数 |
1016 | 一的个数 |
1017 | 外星人的语言 |
1018 | 数位和 |
1019 | 进制回文数 |
1020 | 发邮件 |
1021 | 年会抽奖 |
1022 | 有假币 |
1023 | 考新郎 |
1024 | 蟠桃记 |
1025 | 三角形 |
1026 | 圆周率 |
1027 | 送外卖 |
1028 | 乒乓球筐 |
1029 | 不吉利的日期 |
1030 | 最难的问题 |
1031 | 直方图 |
1032 | 选大王 |
1033 | 害死人不偿命的(3n+1)猜想 (15) |
1034 | 写出这个数 (20) |
1035 | 1003. 我要通过!(20) |
1036 | 成绩排名 (20) |
1037 | 继续(3n+1)猜想 (25) |
1038 | 换个格式输出整数 (15) |
1039 | 素数对猜想 (20) |
1040 | 数组元素循环右移问题 (20) |
1041 | 说反话 (20) |
1042 | 一元多项式求导 (25) |
1001
1002
#include<stdio.h>
int main() {
int n;
while(scanf("%d",&n)!=EOF) {
if(n%4==2)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
1003
1004
- C++
#include<iostream>
using namespace std;
long long a[81]={0};
int main() {
int m,n;
a[0]=a[1]=1;
for(int i=2;i<81;i++) {
a[i]=a[i-1]+a[i-2];
}
while(cin>>m>>n) {
long long sum=0;
for(int i=m-1;i<n;i++) {
sum+=a[i];
}
cout<<sum<<endl;
}
return 0;
}
- Python
def main():
while True:
try:
n,m=map(int,input().split())
a=[1,1]
for i in range(2,m+1):
a.append(a[-1]+a[-2])
s=sum(a[n-1:m])
print(s)
except:
break
if '__name__'==main():
main()
1005
def main():
a=[1,1]
for i in range(2,100001):
a.append((a[-1]+a[-2])%1000000)
while True:
try:
n=int(input())
if n<37:
print(a[n]%1000000)
else:
print('%.6d' % (a[n]%1000000))
except:
break
if '__name__'==main():
main()
1006
- 思考
- n=1时,矩阵为:
|1 1|
|1 0|
所以左上角数字为1 - n=2时,矩阵为
|1 1| * |1 1| => |2 1|
|1 0| |1 0| |1 1|
所以左上角数字为2
…
n的取值:1 2 3 4 5 6 …
左上角值:1 2 3 5 8 13 …
斐波那契数列。。。
- n=1时,矩阵为:
- 代码
#include<iostream>
using namespace std;
int main() {
int n,x,f[10001];
f[0]=1;f[1]=1;
for(int i=2;i<10001;i++)
f[i]=(f[i-1]%10000+f[i-2]%10000)%10000;
while(~scanf("%d",&n)) {
while(n--) {
cin>>x;
printf("%04d",f[x]);
}
cout<<endl;
}
return 0;
}
1007
- 思考
假设现在是第n年,有m头牛,求n+1年?n+1年一定会有第n年的m头牛,关键的为题是有多少头牛会生小牛,每头小母牛从第四个年头开始,每年年初也生一头小母牛,因此会n-3年所有牛都会生小牛。因此:
第n+1年=第n-1年+第n-3年
- 代码
#include<iostream>
using namespace std;
int main() {
int a[56],n;
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
for(int i=4;i<56;i++) {
a[i]=a[i-1]+a[i-3];
}
while(~scanf("%d",&n)) {
cout<<a[n-1];
cout<<endl;
}
return 0;
}
1008
- 思考
这是一个斐波拉契。
- 代码
#include<iostream>
using namespace std;
int main() {
long long a[91];
int n;
a[0]=1;
a[1]=2;
for(int i=2;i<91;i++) {
a[i]=a[i-1]+a[i-2];
}
while(~scanf("%d",&n)) {
cout<<a[n-1];
cout<<endl;
}
return 0;
}