java基础题

package test;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;

public class Test {
 /**
  * 两个人以相同方向跑步,一个的速度是20m/s,一个速度是40m/s,一圈200m,那么请问这两个人,在其中一人完成1000m时
  * 他们相遇了多少次?
  */
 public static int limitSpeed() {
  int smallSpeed=20;
  int largeSpeed=40;
  int count=0;
  int range=0;
  int distance=0;
  while(true) {
   if(range==1000) {
    break;
   }
   range+=largeSpeed;
   distance+=smallSpeed;
   if((range-distance)%200==0){
    count++;
   }
  }
  return count;
 }
 public static int getmonth(int year,int month) {
  Date date=new Date();
  SimpleDateFormat sdf=new SimpleDateFormat("yyyyMM");
  String time=sdf.format(date);
  int Year=Integer.parseInt(time.substring(0,4));
  int Month=Integer.parseInt(time.substring(4));
  int count=Year-year-1;
  int months=0;
  months=count*12+13-month+Month;
  return months;
 }
 public static int getmonthdays(int year,int month) {
  boolean flag=month==4||month==6||month==9||month==11;
  if(month==2&&getYear(year)) {
   return 29;
  }else if(month==2&&!getYear(year)) {
   return 28;
  }else if(flag) {
   return 30;
  }else {
   return 31;
  }
 }
 /**
  *
  * @param year 出生年
  * @param month 出生月
  * @param day 出生日
  * @return 计算你出生到今天过了多少天
  */
 public static int getDays(int year,int month,int day) {
 Date date=new Date();
 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
 String time=sdf.format(date);
 int Year=Integer.parseInt(time.substring(0,4));
 int Month=Integer.parseInt(time.substring(4,6));
 int Day=Integer.parseInt(time.substring(6));
 Calendar c=Calendar.getInstance();
 c.set(Calendar.YEAR,year);
 c.set(Calendar.MONTH,month-1);
 int days=0;
 days+=getmonthdays(year, month)-day;
 c.add(Calendar.MONTH,1);
 while(true) {
  if(c.get(Calendar.YEAR)==Year&&c.get(Calendar.MONTH)==Month-1) {
   break;
  }
  int monthdays=getmonthdays(c.get(Calendar.YEAR),c.get(Calendar.MONTH)+1);
  days+=monthdays;
  c.add(Calendar.MONTH,1);
 }
 days+=Day;
 return days;
 }
 /**
  *
  * @param year 年
  * @return 是不是闰年
  */
 public static boolean getYear(int year) {
  if(year%4==0&&year%100!=0||year%400==0) {
   return true;
  }
  return false;
 }
 /**
  * 解密字符串
  * @return
  */
 private static char[] acot;
 public static int[] index;
 public static String decryptString(String str) {
  String dust="";
  for(int i=0;i<str.length();i++) {
   boolean flag=false;
   for(int j=0;j<index.length;j++) {
    if(i==index[j]) {
     flag=true;
     break;
    }
   }
   if(!flag) {
    dust+=str.charAt(i);
   }
  }
  return dust;
 }
 /**
  * 加密字符串
  * @param str
  * @return
  */
 public static String encryptionString(String str) {
  char[] acct={};
  Random r=new Random();
  int a=r.nextInt(5)+2;
  acot=getCharArray(a);
  acct=new char[str.length()+a];
  index=new int[a];
  int acotIndex=0;
  int strIndex=0;
  for(int i=0;i<acct.length;i++) {
   if(acotIndex==acot.length) {
    acct[i]=str.charAt(strIndex);
    strIndex++;
   }else if(strIndex==str.length()) {
    acct[i]=acot[acotIndex];
    index[acotIndex]=i;
    acotIndex++;
   }else{
    int c=r.nextInt(2);
    if(c==0) {
     acct[i]=str.charAt(strIndex);
     strIndex++;
    }else {
     acct[i]=acot[acotIndex];
     index[acotIndex]=i;
     acotIndex++;
    }
   }
  }
  String sdk="";
  for(char e:acct) {
   sdk+=e;
  }
  return sdk;
 }
 public static char[] getCharArray(int n) {
  char[] arr=new char[n];
  int a='a';
  Random r=new Random();
  for(int i=0;i<n;i++) {
   int b=r.nextInt(26)+a;
   arr[i]=(char)b;
  }
  return arr;
 }
 /**
  * 压缩字符串步骤一
  * @param str
  * @return
  */
 private static String shortStringStep1(String str) {
  String index="";
  for(int i=0;i<str.length();i++) {
   if(i==0) {
    index+=str.charAt(i);
   }else if(str.charAt(i)!=index.charAt(index.length()-1)) {
    index+=str.charAt(i);
   }
  }
  return index;
 }
 /**
  * 压缩字符串步骤二
  * @param str
  * @return
  */
 private static String shortStringStep2(String str) {
  if(str.length()<=3) {
   return str;
  }
  for(int i=0;i<str.length();i++) {
   for(int j=2;j<=str.length()-i;j++) {
    String sum1=str.substring(i,i+j);
    if(i+2*j>str.length()) {
     break;
    }
    String sum2=str.substring(i+j,i+2*j);
    if(sum1.equals(sum2)) {
     if(i==0) {
      str=str.substring(i+j,str.length());
     }else {
      str=str.substring(0,i)+str.substring(i+j,str.length());
      i=0;
     } 
    }
   }
  }
  return str;
 }
 /**
  * 压缩字符串整合方法
  * @param str
  * @return
  */
 public static String getShortString(String str) {
  return shortStringStep2(shortStringStep1(str)); 
 }
 /**
  * 9*9乘法表
  */
 public static void cort() {
  for(int i=1;i<=9;i++) {
   for(int j=1;j<=i;j++) {
    System.out.print(j+"*"+i+"="+j*i+"\t");
   }
   System.out.println();
  }
 }
 public static void lingxing() {
  for(int i=0;i<9;i++) {
   for(int j=8-i;j>0;j--) {
    System.out.print("\t");
   }
   for(int k=0;k<=i;k++) {
    System.out.print(k+1+"*"+(i+1)+"="+(k+1)*(i+1)+"\t");
   }
   for(int m=i;m>=0;m--) {
    System.out.print(m+1+"*"+(i+1)+"="+(m+1)*(i+1)+"\t");
   }
   System.out.println();
  }
  for(int i=0;i<8;i++) {
   for(int j=0;j<=i;j++) {
    System.out.print("\t");
   }
   for(int k=0;k<8-i;k++) {
    System.out.print((k+1)+"*"+(8-i)+"="+(k+1)*(8-i)+"\t");
   }
   for(int m=8-i;m>=1;m--) {
    System.out.print(m+"*"+(8-i)+"="+(m*(8-i))+"\t");
   }
   System.out.println();
  }
 }
 public static int goat(int n) {
  int a=n/1000;
  int b=n/100%10;
  int c=n%100/10;
  int d=n%10;
  a=(a+5)%10;
  b=(b+5)%10;
  c=(c+5)%10;
  d=(d+5)%10;
  a=a+d;
  d=a-d;
  a=a-d;
  b=b+c;
  c=b-c;
  b=b-c;
  return a*1000+b*100+c*10+d;
 }
 public static double[] host(int n,int q) {
  double[] arr=new double[2];
  double m=n;
  double sum=0;
  for(int i=0;i<q;i++) {
   if(i==0) {
    sum=m;
    m=m/2;
   }else {
    sum+=m*2;
    m=m/2;
   }
  }
  arr[0]=m;
  arr[1]=sum;
  return arr;
 }
 /**
  *
  * @param m 因子
  * @param n 因子
  * @return 最大公约数,最小公倍数
  */
 public static int[] view(int m,int n) {
  int[] arr=new int[2];
  if(m/n>1) {
   for(int i=1;i<=n;i++) {
    if(n%i==0&&m%i==0) {
     arr[0]=i;
    }
   }
   for(int i=m;i<=m*n;i++) {
    if(i%m==0&&i%n==0) {
     arr[1]=i;
     break;
    }
   }
  }else {
   for(int i=1;i<=m;i++) {
    if(n%i==0&&m%i==0) {
     arr[0]=i;
    }
   }
   for(int i=n;i<=m*n;i++) {
    if(i%m==0&&i%n==0) {
     arr[1]=i;
     break;
    }
   }
  }
  return arr;
 }
 /**
  * 递归调用
  * @param n
  * @return
  */
 public static int coat(int n) {
  if(n==1||n==2) {
   return n;
  }else {
   return coat(n-1)+coat(n-2);
  }
 }
 /**
  * 冒泡排序
  * @param arr
  * @return
  */
 public static int[] cory(int[] arr) {
  for(int i=0;i<arr.length;i++) {
   for(int j=0;j<arr.length-i-1;j++) {
    if(arr[j]>arr[j+1]) {
     arr[j]=arr[j]+arr[j+1];
     arr[j+1]=arr[j]-arr[j+1];
     arr[j]=arr[j]-arr[j+1];
    }
   }
  }
  return arr;
 }
 /**
  * 转圈最后一人
  * @param arr
  * @return
  */
 public static int tel(int[] arr) {
  int a=0;
  int b=0;
  int sum=arr.length;
  int c=0;
  while(sum>1) {
   b++;
   if(arr[b-1]!=-1) {
    a++;
   }
   if(arr[b-1]!=-1&&a%3==0) {
    arr[b-1]=-1;
    sum--;
    a=0;
   }if(b==arr.length) {
    b=0;
   }
  }
  for(int i=0;i<arr.length;i++) {
   if(arr[i]!=-1) {
    c=arr[i];
   }
  }
  return c;
 }
 /**
  * 在某个范围内的质数
  * @param n
  * @return
  */
 public static int[] goal(int n) {
  int[] arr={};
  for(int i=1;i<=n;i++) {
   int[] soct={};
   int sum=0;
   for(int j=1;j<i;j++) {
    if(i%j==0) {
     soct=Arrays.copyOf(soct,soct.length+1);
     soct[soct.length-1]=j;
    }
   }
   for(int k=0;k<soct.length;k++) {
    sum+=soct[k];
   }
   if(sum==i) {
    arr=Arrays.copyOf(arr,arr.length+1);
    arr[arr.length-1]=i;
   }
  }
  return arr;
 }
 /**
  * 分解质因数
  * @param n
  * @return
  */
public static String check(int n) {
 int[] arr=ask(n/2);
 int cast=n;
 int[] check={};
 String str=n+"=";
 for(int i=0;i<arr.length;i++) {
  if(cast==1) {
   break;
  }
  while(cast>1&&cast%arr[i]==0) {
   cast=cast/arr[i];
   check=Arrays.copyOf(check, check.length+1);
   check[check.length-1]=arr[i];
  }
 }
 int sum=1;
 for(int i=0;i<check.length;i++) {
  sum*=check[i];
 }
 if(sum==n) {
  for(int j=0;j<check.length;j++) {
   if(j==check.length-1) {
    str+=check[j];
   }else {
    str+=check[j]+"*";
   }
  }
 }else {
  str="无法分解质因数";
 }
 return str;
}
public static String listenContext(String str) {
 String option="";
 for(int i=0;i<str.length();i++) {
  char c=str.charAt(i);
  if(c>='A'&&c<='Z') {
   String opt=c+"";
   option+=opt.toLowerCase();
  }else if(c>='a'&&c<='z') {
   String opt=c+"";
   option+=opt.toUpperCase();
  }else {
   option+=c;
  }
 }
 return option;
}
public int[] arr=new int[5];
public void getRandom() {
 Random r=new Random();
 for(int i=0;i<5;i++) {
  arr[i]=r.nextInt(8)+1;
  boolean flag=false;
  for(int j=0;j<i;j++) {
   if(arr[j]==arr[i]) {
    flag=true;
    break;
   }
  }
  if(flag) {
   i--;
  }
 }
}
public int[] guessWhat(int[] coat) {
 int guessNumber=0;
 int location=0;
 int[] message={0,0};
 for(int i=0;i<coat.length;i++) {
  if(arr[i]==coat[i]) {
   location++;
  }
  for(int j=0;j<arr.length;j++) {
   if(coat[i]==arr[j]) {
    guessNumber++;
    break;
   }
  }
 }
 message[0]=guessNumber;
 message[1]=location;
 return message;
}
public int getSomething(){
 Scanner scan=new Scanner(System.in);
 int getScore=500;
 while(true) {
  String lauach=scan.next();
  int[] coat=new int[lauach.length()];
  for(int i=0;i<lauach.length();i++) {
   coat[i]=lauach.charAt(i)-'0';
  }
  int[] bight=guessWhat(coat);
  if(bight[0]==5&&bight[1]==5) {
   break;
  }else {
   getScore-=10;
  }
 }
 scan.close();
 return getScore;
}
public static int waterMelon() {
 /**
  * a=0 b=1;
  * a=0 b=2;
  * a=0 b=3;
  */
 int a=5;
 int b=6;
 int sum=0;
 while(b!=3) {
  if(sum==0) {
   b=b-a;
   a=0;
  }else {
   b=6-(5-b);
   a=0;
  }
  sum++;
 }
 return sum;
}
public static String doubleToString(String money) {
 String option="";
 int index=money.indexOf(".");
 String premoney=money.substring(0, index);
 String aftermoney=money.substring(index,money.length());
 int sum=0;
 for(int i=premoney.length()-1;i>=0;i--) {
  sum++;
  if(sum==3&&i!=0) {
   option=","+premoney.charAt(i)+option;
   sum=0;
  }else {
   option=premoney.charAt(i)+option;
  } 
 }
 option=option+aftermoney;
 return option;
}
public static double stringToDouble(String str) {
 String[] frost=str.split(",");
 String minFrost="";
 for(String everyElement:frost) {
  minFrost+=everyElement;
 }
 return Double.parseDouble(minFrost);
}
public static int[] ask(int n) {
 int[] arr= {2,3};
 for(int i=4;i<=n;i++) {
  for(int j=2;j<=i;j++) {
   if(i%j==0&&j==i) {
    arr=Arrays.copyOf(arr, arr.length+1);
    arr[arr.length-1]=i;
   }else if(i%j==0) {
    break;
   }
  }
 }
 return arr;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值