2013蓝桥杯javaA组题解(不含填空,第一道大题,最后一道大题)

1

import java.util.Calendar;

public class _1 {

    public static void main(String[] args) {
        Calendar calendar=Calendar.getInstance();
        for (int i = 1999; i < 10000; i+=100) {
            calendar.set(Calendar.YEAR,i);
            calendar.set(Calendar.MONTH,11);
            calendar.set(Calendar.DAY_OF_MONTH,31);
            if(calendar.get(Calendar.DAY_OF_WEEK)==1){
                System.out.println(i);
                break;
            }
        }
    }
}

2

import java.util.Scanner;

public class _2 {
    public static void main(String[] args) {
        dfs(0,0);
        System.out.println(ans);

    }

    static int[] dx={0,1};
    static int[] dy={1,0};
    static int ans=0;
    static void dfs(int i,int j){
        if(i==3&&j==4){
            ans++;
            return;
        }
        for (int i1 = 0; i1 < 2; i1++) {
            int ni=i+dx[i1];
            int nj=j+dy[i1];
            if(ni>=0&&ni<4&&nj>=0&&nj<5){
                dfs(ni,nj);
            }
        }
    }
}

3

import java.math.BigInteger;

public class _3 {
    public static void main(String[] args) {
        BigInteger bg=BigInteger.valueOf(2).pow(11213).subtract(BigInteger.ONE);
        String s=bg.toString();
        System.out.println(s.substring(s.length()-100));
    }
}

4

public class _4 {
    static int[] a=new int[10000];
    static int[] b=new int[10000];
    public static void main(String[] args) {
        for (int i = 1000; i <= 9999; i++) {
            if(String.valueOf(i).contains("3")||String.valueOf(i).contains("4")||String.valueOf(i).contains("7")){
                continue;
            }
            int c=change(i%10);
            int d=change(i/1000);
            int e=change((i-(i/1000)*1000)/100);
            int f=change((i-(i/1000)*1000-(i-(i/1000)*1000)/100*100)/10);
            a[i]=c*1000+f*100+e*10+d;
            if(String.valueOf(a[i]).length()!=4)continue;
            b[i]=a[i]-i;
            System.out.println(i+" "+a[i]+" "+b[i]);

        }
        for (int i = 1000; i <= 9999; i++) {
            for (int j = 1000; j <= 9999; j++) {
                if(b[j]>800&&b[j]<900&&b[i]<-200&&b[i]>-300){

                    if(b[j]+b[i]==558){
                        System.out.println(j+" "+i);
                    }
                }

            }
        }
    }
    static int change(int i){
        if(i==2)return 5;
        else if(i==5)return 2;
        else if(i==6)return 9;
        else if(i==9)return 6;
        return i;
    }
}

5

import java.util.Scanner;

public class _5 {
    static double v;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        v=n*1.0;
        f(0);
        System.out.println(ans);
    }
    static boolean[] vis=new boolean[10];
    static long ans=0;
    static int[] a=new int[10];
    static void f(int k){
        if(k==9){
            if(check(v)){
                ans++;
            }
//            for (int i = 0; i < 9; i++) {
//               System.out.print(a[i]);
//            }
//            System.out.println();
            return;
        }
        for (int i = 1; i <= 9; i++) {
            if(!vis[i]){
                vis[i]=true;
                a[k]=i;
                f(k+1);
                vis[i]=false;
            }
        }
    }

    private static boolean check(double v) {
        double sum=a[0]+((a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5])*1.0)/(a[6]*100+a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]+((a[1]*1000+a[2]*100+a[3]*10+a[4])*1.0)/(a[5]*1000+a[6]*100+a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]+((a[1]*100000+a[2]*10000+a[3]*1000+a[4]*100+a[5]*10+a[6])*1.0)/(a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]+((a[1]*1000000+a[2]*100000+a[3]*10000+a[4]*1000+a[5]*100+a[6]*10+a[7])*1.0)/(a[8]);
        if(sum==v)return true;
        sum=a[0]*10+a[1]+((a[2]*1000+a[3]*100+a[4]*10+a[5])*1.0)/(a[6]*100+a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]*10+a[1]+((a[2]*10000+a[3]*1000+a[4]*100+a[5]*10+a[6])*1.0)/(a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]*10+a[1]+((a[2]*100000+a[3]*10000+a[4]*1000+a[5]*100+a[6]*10+a[7])*1.0)/(a[8]);
        if(sum==v)return true;
        sum=a[0]*100+a[1]*10+a[2]+((a[3]*100+a[4]*10+a[5])*1.0)/(a[6]*100+a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]*100+a[1]*10+a[2]+((a[3]*1000+a[4]*100+a[5]*10+a[6])*1.0)/(a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]*100+a[1]*10+a[2]+((a[3]*10000+a[4]*1000+a[5]*100+a[6]*10+a[7])*1.0)/(a[8]);
        if(sum==v)return true;
        sum=a[0]*1000+a[1]*100+a[2]*10+a[3]+((a[4]*100+a[5]*10+a[6])*1.0)/(a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]*1000+a[1]*100+a[2]*10+a[3]+((a[4]*1000+a[5]*100+a[6]*10+a[7])*1.0)/(a[8]);
        if(sum==v)return true;
        sum=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4]+((a[5]*10+a[6])*1.0)/(a[7]*10+a[8]);
        if(sum==v)return true;
        sum=a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4]+((a[5]*100+a[6]*10+a[7])*1.0)/(a[8]);
        if(sum==v)return true;
        sum=a[0]*100000+a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5]+((a[6]*10+a[7])*1.0)/a[8];
        if(sum==v)return true;
        return false;
    }
}

6

import java.util.Scanner;

public class _6 {
    static int n,m;
    static int[][] a=new int[10][10];
    static int sum;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        m=sc.nextInt();n=sc.nextInt();

        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                a[i][j]=sc.nextInt();
                sum+=a[i][j];
            }
        }
        if(sum%2!=0) System.out.println(0);
        else{
            ans=a[0][0];
            dfs(0,0,1);
            System.out.println(min);
        }
    }

    static int ans,res,min=999999999;
    static int[] dx={0,0,1,-1};
    static int[] dy={1,-1,0,0};
    static boolean[][] vis=new boolean[10][10];
    private static void dfs(int x, int y,int k) {
        vis[x][y]=true;
        if(ans>sum/2){
            return;
        }

        if(ans==sum/2){
            min=Math.min(min,k);
            return;
        }
        for(int i=0;i<4;i++){
            int nx=x+dx[i];
            int ny=y+dy[i];
            if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny]){
                ans+=a[nx][ny];
                dfs(nx,ny,k+1);
                ans=ans-a[nx][ny];
                vis[nx][ny]=false;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值