阿里笔试第一题,母猪超生
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Main {
/** 请完成下面这个函数,实现题目要求的功能 **/
/** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String[] line = in.nextLine().split(",");
int m = Integer.valueOf(line[0]);
int k = Integer.valueOf(line[1]);;
System.out.println(calculate(m, k));
}
static int reverse(int k){
String out = "";
char[] ch = String.valueOf(k).toCharArray();
for(int i=ch.length-1;i>-1;i--){
out+=(ch[i]+"");
}
return Integer.parseInt(out);
}
static String calculate(int m,int k){
String out = "";
if(m==1){
out="2,2019,1";//有可能k>m
}
else if(m==2){
out="2,2019"+String.valueOf(k);
}
else if(m==3){
out="4,2020,"+String.valueOf(k);
}
else{
int num1 = 2;
int num2 = 3;
int year = 2020;
int up = 1;
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(2);
al.add(3);
al.add(4);
int pig = 3;
int next = 0;
int alind = 0;
while(pig<m){
next = num1+num2;
pig+=next;
num1 = num2;
num2 = next;
year+=up;
if(pig>=m){
break;
}
else{
while(next>0){
al.add(al.get(alind)+al.get(alind+1));
alind++;
next--;
}
}
}
if(next>0){year+=up;
while(next-(pig-m)>0){
al.add(al.get(alind)+al.get(alind+1));
alind++;
next--;
}}
out = String.valueOf(al.get(alind+2))+","+String.valueOf(year)+",";
ArrayList<Integer> reversenum = new ArrayList<Integer>();
for(int i=0;i<al.size();i++){
reversenum.add(reverse(al.get(i)));
}
Collections.sort(reversenum);
int pigk = reverse(reversenum.get(reversenum.size()-k));
int i ;
for(i=0;i<al.size();i++){
if(pigk == al.get(i)){break;}
}
out+=String.valueOf(i+1);
}
return out;
}
}
#阿里巴巴##笔试题目##春招#
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Main {
/** 请完成下面这个函数,实现题目要求的功能 **/
/** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String[] line = in.nextLine().split(",");
int m = Integer.valueOf(line[0]);
int k = Integer.valueOf(line[1]);;
System.out.println(calculate(m, k));
}
static int reverse(int k){
String out = "";
char[] ch = String.valueOf(k).toCharArray();
for(int i=ch.length-1;i>-1;i--){
out+=(ch[i]+"");
}
return Integer.parseInt(out);
}
static String calculate(int m,int k){
String out = "";
if(m==1){
out="2,2019,1";//有可能k>m
}
else if(m==2){
out="2,2019"+String.valueOf(k);
}
else if(m==3){
out="4,2020,"+String.valueOf(k);
}
else{
int num1 = 2;
int num2 = 3;
int year = 2020;
int up = 1;
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(2);
al.add(3);
al.add(4);
int pig = 3;
int next = 0;
int alind = 0;
while(pig<m){
next = num1+num2;
pig+=next;
num1 = num2;
num2 = next;
year+=up;
if(pig>=m){
break;
}
else{
while(next>0){
al.add(al.get(alind)+al.get(alind+1));
alind++;
next--;
}
}
}
if(next>0){year+=up;
while(next-(pig-m)>0){
al.add(al.get(alind)+al.get(alind+1));
alind++;
next--;
}}
out = String.valueOf(al.get(alind+2))+","+String.valueOf(year)+",";
ArrayList<Integer> reversenum = new ArrayList<Integer>();
for(int i=0;i<al.size();i++){
reversenum.add(reverse(al.get(i)));
}
Collections.sort(reversenum);
int pigk = reverse(reversenum.get(reversenum.size()-k));
int i ;
for(i=0;i<al.size();i++){
if(pigk == al.get(i)){break;}
}
out+=String.valueOf(i+1);
}
return out;
}
}
#阿里巴巴##笔试题目##春招#