刷题记录:
题目1及代码如下:
/*Problem Description
有一个序列f[i]满足:f[0]=7,f[1]=11,f[n]=f[n?1]+f[n?2],n≥2
给定你一个整数n,判断f[n]是否能被3整除,如果可以,则输出Yes, 否则为No
Input
第一行包含一个整数t,代表含有t组测试样例
第二行到第t+1行,每行包含一个整数n
保证:1≤t≤1e5,1≤n≤1e9
Output
输出t行,如果f[n]能被3整除则输出Yes,否则输出No(行末换行)
Sample Input
5
1
2
3
4
5
Sample Output
No
Yes
No
No
No*/
#include<stdio.h>
int main()
{
int i,n,t;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&t);
t%=4;
switch(t){
case 0:
printf("no\n");
break;
case 1:
printf("no\n");
break;
case 2:
printf("yes\n");
break;
case 3:
printf("no\n");
break;
default:
break;
}
}
return 0;
}
题目2及代码如下:
/*Problem Description
某年某月某日,小撒,非池两人约好玩击剑游戏,由 shine 学长负责给他们统计分数,总共有 t 次游戏,每次两人每次获得的分数分别为 num1,num2 ,分数高的获胜,现在青山学长想知道他们离获胜分别差多少分。
保证:0 ≤num1,num2 ≤105
Input
第 1 行输入一个整数 t, 表示 t 组数据;
第 2 至 t?1 行分别输入两个数 num1,num2
Output
每行输出两个数, 分别表示小撒,非池需要加的分数, 末行换行
Sample Input
2
1 2
2 3
Sample Output
2 0
2 0*/
#include<stdio.h>
int main()
{
int t,a,b,i,c,d;
scanf("%d",&t);
for(i=0;i<t;i++){
scanf("%d %d",&a,&b);
if(a>b){
c=0;
d=a-b+1;
}else if(a<b){
d=0;
c=b-a+1;
}else if(a==b){
d=1;
c=1;
}
printf("%d %d\n",c,d);
}
return 0;
}
题目3及代码如下:
/*Problem Description
由于被安排了这周出签到题,所以就让大家水一道简单的题目吧(太感动了)
计算 a?b ;
注:t<10000,0<b<a<264
Input
第 1 行输入一个 t , 表示 t 组数据
第 2 到 t+1 行输入 a,b 中间用空格分开
Output
输出a?b 的值并换行
Sample Input
5
2 1
12 1
1 1
8 2
100000 40000
Sample Output
1
11
0
6
60000
*/
#include<stdio.h>
int main()
{
unsigned __int64 t,a,b,i;
scanf("%lld",&t);
for(i=0;i<t;i++){
scanf("%lld %lld",&a,&b);
printf("%lld\n",a-b);
}
return 0;
}