17年内892真题参考答案

17年内892真题参考答案

有的题做的不是很好,如果有看到的会的希望可以留言交流一下啦!
有的代码也是借鉴的别人的,算是在这里做了一个集总,应该没有侵权吧?若有侵权,联系必删!

package javaapplication6;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author lenovo
 */
public class JavaApplication6 {

    /**
     * @param args the command line arguments
     * 2017年复试
     * 1、输入一组数字序列,大小不超过500,遇到-1结束,判断升序与否,是升序,输出“YES”
     * 2、判断不超过n的所有数中与7有关的数有多少个
     * 3、输入一个正整数,判断这个数是否为回文数,若是,输出“YES”
     * 4、输入两个字符串,str1和str2,将str2逆序之后连接到字符串str1后面,最后输出str1
     * 5、进制数转换
     * 6、蛇形矩阵
     * 2017年初试
     * 1、输入a,b,c三个数,输出其中最大值
     * 2、求两个数的最大公约数和最小公倍数
     * 3、输入a,b两个数,输出他们之间的素数
     * 4、计算输入字符串的英文字母个数
     * 5、将两个有序的数字数列合并为一个有序数列
     * 6、出国留学时间为A年B月C日,回国时间为X年Y月Z日,设计一个程序计算其出国时间,包括出国及回国当天
     * 7、递归程序,将输入的字符串反向输出
     * 8、计算2/1,3/2.,5/3,8/5,13、8.。。。的前n项和
     * 9、约瑟夫环
     */
    public static void main(String[] args) {
        // TODO code application logic here
    /*   Scanner sc=new Scanner(System.in);
      //不会处理遇到-1结束
       int []a=new int[5];
       for(int i=0;i<a.length;i++){
           a[i]=sc.nextInt(); 
  }
       for(int i=0;i<a.length-1;i++){
           for(int j=0;j<a.length-1-i;j++){
               if(a[j+1]<a[j]){
                   System.out.println("NO");return;
               }
               }
              }      
              System.out.println("YES");
    }
       }*/
       /*  Scanner sc=new Scanner(System.in);
         int n =sc.nextInt();
         for(int i=1;i<=n;i++){
             if(i%7==0){
                 System.out.println(i);
             }
             else{
                 int t=i;
                 while(t!=0){
                     if(t%10==7){
                         System.out.println(i);
                     } t/=10;
                 }
             }
         }}}*/
/*Scanner sc=new Scanner(System.in);
         int n =sc.nextInt();
         String str=String.valueOf(n);
         for(int i=0;i<str.length();i++){
             if(str.charAt(i)!=str.charAt(str.length()-i-1)){
                 System.out.println("NO");return;}
         }  
     System.out.println("YES");}}*/
/*Scanner sc=new Scanner(System.in);
String str1=sc.next();
String str2=sc.next();
str1+=new StringBuilder(str2).reverse().toString();
System.out.println(str1);}}*/
/*Scanner sc=new Scanner(System.in);
System.out.println("请输入m");
        int m =sc.nextInt();
        System.out.println("请输入n");
        int n = sc.nextInt();
        System.out.println("请输入一个m进制的数字串");
        String a=sc.next();
        int b=Integer.parseInt(a,m);//以m进制接收a
        //System.out.println(b);//输出m进制的a
        String ss=Integer.toString(b,n);//将m进制的b转换为n进制
        System.out.println(ss);
    }}*/
/*Scanner sc=new Scanner(System.in);
         int n =sc.nextInt();
         int[][] a=new int[10][10];//不是很成功,定义了数组容量之后,可能会不合适,若大,则数组中会有许多初始化为0的值
         int s=0,i=0,d=-1;
         while(n>=1){
             int cnt=0;
             while(cnt<=s){
                 a[i][s-i]=n--;
                 cnt++;
                 i+=d;
             }s++;
             d=-d;
             i=d>0?0:s;
         }
         for(int k=0;k<10;k++){
             for(int j=0;j<10;j++){
             System.out.print(a[k][j]);
         }System.out.println();
    }}}*/
//2017年初试
/*Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int a[]=new int [n];
for(int i=0;i<a.length;i++){
    a[i]=sc.nextInt();
}
Arrays.sort(a);
    for(int b:a){
        System.out.print(b+" ");}
    }}*/
/* Scanner sc=new Scanner(System.in);
  int a=sc.nextInt();
  int b=sc.nextInt();
  int c=a*b;
  System.out.println("最大公约数是"+gcd(a,b));
  System.out.println("最小公约数是"+c/gcd(a,b));
    }
    public static int gcd(int a,int b){
        if(b==0) return a;
        else return gcd(b,a%b);
        
    }}*/
/*Scanner sc =new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
for(int i=a;i<=b;i++){
    if (isPrime(i)) System.out.print(i+" ");
}}
 public static boolean isPrime(int num) {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
   boolean flag=true;
   for (int i=2;i<Math.sqrt(num)+1;i++){
       if(num%i==0){
           flag=false;
       break;}
   }return flag;
    }}*/
/*Scanner sc =new Scanner(System.in);
String str=sc.next();
char[] ch=str.toCharArray();
int count=0;
for(int i=0;i<ch.length;i++){
    if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z'))
        count++;
}
System.out.println(count);}}*/
/*Scanner sc =new Scanner(System.in);
int n =sc.nextInt();
int m =sc.nextInt();
int a[]=new int[n];
int b[]=new int[m];
for(int i=0;i<n;i++){
    a[i]=sc.nextInt();
   }
for(int i=0;i<m;i++){
    b[i]=sc.nextInt();
   }
int c[]=new int[n+m];
for(int i=0;i<n;i++){
    c[i]=a[i];
}
int index=n;
for(int i=0;i<m;i++){
    c[index]=b[i];
    index++;
    if(index==n+m)
      break;
}
Arrays.sort(c);
for(int i=0;i<n+m;i++){
    System.out.print(c[i]+" ");
}}}*/
//若是用链表来将两个有序数列合并成一个,代码不成熟
/*Scanner sc =new Scanner(System.in);
JavaApplication6 list1=new JavaApplication6();
int n=sc.nextInt();
int m=sc.nextInt();
for(int i=0;i<n;i++){
    list1.addNode(sc.nextInt());
}
JavaApplication6 list2=new JavaApplication6();
for(int i=0;i<m;i++){
    list2.addNode(sc.nextInt());
}
//JavaApplication6.Node =mergeTwoList(list1,list2);不会处理两个链表的合并
    }
    Node head=null;
    public class Node{
        int data;
        Node next=null;
        public Node(int data){
            this.data=data;
        }
    }
    public void addNode(int data){
        Node newNode=new Node(data);//为新节点分配内存空间
          if(head.next==null){
            head.next=newNode;
            return;
        }
          Node tmp=head;
          while(tmp.next!=null){
              tmp=tmp.next;
          }
          tmp.next=newNode;
    }
    public void printList(){
        Node tmp=head;
        while(tmp!=null){
            System.out.println(tmp.data+" ");
            tmp=tmp.next;
        }
    }
    public Node mergeTwoList(Node l1,Node l2){
        Node dummyHead=new Node(0);
        Node cur=dummyHead;
        while(l1!=null&&l2!=null){
            if(l1.data<=l2.data){
                l1.next=mergeTwoList(l1.next, l2);
            }
            else{
                l2.next=mergeTwoList(l1, l2.next);
            }
        }
        if(l1==null) cur.next=l2;
        else cur.next=l1;
        return dummyHead.next;
    }
    }*/
/*Scanner sc =new Scanner(System.in);
  String strLeave=sc.next();
  String strComeBack=sc.next();
  SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
        try {
            Date date1=sdf.parse(strLeave);
            Date date2=sdf.parse(strComeBack);
            System.out.println("两个日期差"+differentDaysMillisecond( date1, date2));
        } catch (ParseException ex) {
            Logger.getLogger(JavaApplication6.class.getName()).log(Level.SEVERE, null, ex);
        }
  
  
    }
public static int differentDaysMillisecond(Date date1,Date date2){
    int days=(int)((date2.getTime()-date1.getTime())/(1000*3600*24)); 
    //getTime()方法返回一个整数值,代表了从1970年1/1日开始计算到Date对象中的时间的毫秒数
    return days;
}}
      */
/*Scanner sc =new Scanner(System.in);
String str=sc.next();
reverseString(str);}
    public static void reverseString(String str){
        if(str.length()==1){
            System.out.println(str);
        }
        else{
            String str1=str.substring(0,str.length()-1);
            String str2= str.substring(str.length()-1);
            System.out.print(str2);
            reverseString(str1);
        }
    }}*/
 /*  Scanner sc=new Scanner(System.in);
    int a =sc.nextInt();
      float fz=1.0f;
       float fm=1.0f;
       float sum=0f;
        for(int i=1;i<=a;i++){ 
        float temp= fm;
         fm=fz;
         fz=temp+fz;
         float c =fz/fm;
         sum+=c;}
           
                    System.out.println(sum);
            }
}*/
  Scanner sc=new Scanner(System.in);
  int[] a=new int[sc.nextInt()];
  for(int i=0;i<a.length;i++){
      a[i]=1;
  }
  int left=a.length;
  int j=0,num=0;
  while(left>1){
      if(a[j]==1) num++;
      if(num==3){
          a[j]=0;
          num=0;
          left--;
      }j++;
      if(j==a.length) j=0;
  }
  for(int i=0;i<a.length;i++){
      if(a[i]==1)
      {
          System.out.println("最后留下的是"+(i+1)+"号");
      }}
    }}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值