题目链接
一言难尽的比赛
A.6的个数
签到题,遍历一遍即可
public class Main {
public static void main(String[] args) {
int ans = 0;
for(int i=1;i<=2016;i++) {
int temp=i;
while(temp!=0) {
if(temp%10==6)ans++;
temp/=10;
}
}
System.out.println(ans);
}
}
B.小明的作业
实不相瞒,我是用word文档查出来的,除了
a
和w
,其他字母用*
代替,然后查,然后千万不要有小可爱沾沾自喜的然后看错题意直接输出和了。。。
C.斐波那契
用了一个公约数,需要注意的是要用long,不然会爆int。还有就是每次进行运算的时候都需要除一次公约数,不然long也会爆。
import java.math.BigInteger;
public class Main {
public static long gcd(long m,long n) {
if(n==0)return m;
else return gcd(n,m%n);
}
public static void main(String[] args) {
long arr[] = new long[14];
arr[0] = 1;
arr[1] = 1;
for(int i=2;i<14;i++) {
arr[i] = arr[i-1]+arr[i-2];
}
long fz = 1;
long fm = 1;
for(int i=1;i<13;i++) {
fz = fz*arr[i]*arr[i+1]+fm;
fm = fm*arr[i]*arr[i+1];
long t =gcd(fz,fm);
fz=fz/t;
fm=fm/t;
}
System.out.println(fz+"/"+fm);
}
}
D.数组重现
这个是一个全排列,我知道是全排列但是我不会遍历。。。我。。。
F.字符串
这个要看清题意啊!!题目说了只有连续的
@wyk
才是有效的,所以判断有没有这个字符串就行了
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
int ans = 0;
while(n-->0) {
String s = sc.nextLine();
if(s.contains("@wyk"))ans++;
}
System.out.println(ans);
}
}
G.最强对手矩阵
这是一个二维前缀和,但是俺还是不会遍历。。。