蓝桥杯2013年真题算法代码实现

蓝桥杯2013年真题

package 真题;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class TEST2013 {
	public static void main(String[] args) {
	    Calendar calendar = Calendar.getInstance();//可用于1970年后操作日期用
	    for (int year = 1999; year < 10000; year+=100) {
	      calendar.set(Calendar.YEAR,year);
	      calendar.set(Calendar.MONTH,11);//12月  只有月份是0开始的,0对应1月
	      calendar.set(Calendar.DAY_OF_MONTH,31);
	      
	      if(calendar.get(Calendar.DAY_OF_WEEK)==1){//1:星期天 2:星期一 外国人的第一天是星期天
	    	  System.out.println(year+" "+calendar.get(Calendar.DAY_OF_WEEK));
	    	  break;
	      }
	    }
	  }


	 

	 
		public static void main(String[] args) {
			Scanner in = new Scanner(System.in)//			int year = 1999;
			int week = 4;//为了方便求模,0代表星期一,1999年12月31是星期五,初始化4
			int[] data1 = new int[] {-1,31,28,31,30,31,30,31,31,30,31,30,31};
			int[] data2 = new int[] {-1,31,29,31,30,31,30,31,31,30,31,30,31};//闰年天数
			
			for(year=2000;year<=9999;year++) {
					if((year%100!=0 && year%4==0) || year%400==0)
						week = (week+366)%7;
					else
						week = (week+365)%7; 
					if(year%100==99)
						System.out.println(year+" "+week);
			}
			
		}
	 
		//1.化为求斐波那契相邻两项的比值,到多少项?越多越精确,n/n+1项,n再往上增加,这个比值的小数点后101位是稳定的,也就是不变的
	//  2.double无法表示100位小数,BigInteger和BigDecimal

	  public static void main(String[] args) {
	    BigInteger a=BigInteger.ONE;
	    BigInteger b=BigInteger.ONE;
	    System.out.println(a);
	    //斐波那契数列的迭代形式
	    for (int i = 3; i < 500; i++) {
	      BigInteger t=b;
	      b=a.add(b);//大整数的加法
	      a=t;
	    }
	    //大浮点数的除法
	    BigDecimal divide = new BigDecimal(a,110).divide(new BigDecimal(b,110), BigDecimal.ROUND_HALF_DOWN);
	    //截取字符串
	    System.out.println(divide.toPlainString().substring(0,103));
	  }
	
	//0.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375
	

	public static void main(String[] args) {
		System.out.println(f(0,0));
	}
	public static int f(int i,int j) {
		if(i==3||j==4) {
			return 1;
		}
		return f(i+1,j)+f(i,j+1);
	}
	
	
	public static void main(String[] args) {
		
		int x[]=new int []{25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};
	sort(x);
	for(int i=0;i<x.length;i++) {
		System.out.println(x[i]);
	}
	}
	
    public static void sort(int[] x)
    {
        int p = 0;
        int left = 0;
        int right = x.length-1;
        
        while(p<=right){
            if(x[p]<0){
                int t = x[left];
                x[left] = x[p];
                x[p] = t;
                left++;
                p++;
            }
            else if(x[p]>0){
                int t = x[right];
                x[right] = x[p];
                x[p] = t;
                right--;            
            }
            else{
            	//x[ x.length/2]=0;  //代码填空位置
            	p++;
            }
        }
    }
  
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();
		List<Integer> list=new ArrayList<>();
		sc.nextLine();
		for(int i=0;i<num;i++) {
			String s=sc.nextLine();
			String str[]=s.split(" ");
			for(int k=0;k<str.length;k++) {
			list.add(Integer.parseInt(str[k]));
			}
		}
		Collections.sort(list);
		for(int i=1;i<list.size();i++) {
			if(list.get(i)-list.get(i-1)==2) {
				System.out.println(list.get(i-1)+1);
			}
			for(int k=i+1;k<list.size();k++) {
				if(list.get(i).equals(list.get(k))) {
					System.out.println(list.get(i));
				}
			}
		}

		
	
			 
			public static void main(String[] args) {
				StringBuilder s = new StringBuilder("abcdefghijklmnopqrs");
				for(int i=1;i<=105;i++) {
					s.append("abcdefghijklmnopqrs");//向字符串中添加106个19个字符串
				}
				while(s.length()>1) {
					System.out.println(s.length());
					StringBuilder s1 = new StringBuilder();
					for(int i=1;i<s.length();i+=2)
						s1.append(s.charAt(i));
					s = s1;
				}
				
				System.out.println(s);
				
		
		    double x = 111; 
		    for(int n = 10000; n>=0; n--){
		        int i = 2 * n + 1;
		        x = 2 + (i*i / x);
		    }
		    
		    System.out.println(String.format("%.4f", 4.0/(x-1)));
		 
		
		    	 
		    	public static void main(String[] args) {
		    		// A/B x C/D = E/F   A*C*F = E*B*D
		    		int ans=0;
		    		for(int a=1;a<10;a++)
		    			for(int b=1;b<10;b++)
		    				for(int c=1;c<10;c++)
		    					for(int d=1;d<10;d++) {
		    						int e = 10*a+c;
		    						int f = 10*b+d;
		    						if(a==b || c==d)
		    							continue;
		     
		    						if(a*c*f==e*b*d) {
		    							ans++;
		    							System.out.println(a+"/"+b+" x "+c+"/"+d+" = "+e+"/"+f+"  "+ans);
		    						}
		    						
		    					}
		    		
		    	}
		     
		    }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值