超越姐姐镇楼,祝大家机试遇到你会的问题。
1.大小写转换
public static String upLowCase(String str){
return str.toLowerCase();
}
public static String lowUpCase(String str){
return str.toUpperCase();
}
2.1990年到2010年的闰年
public static boolean isleapyear(int year){
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ;
}
3.判断一个数是否是质数
public static boolean isprimenum(int num){
if(num <= 3)
return num > 1;
for(int i = 2 ; i < num ; i++){
if( num%i == 0)
return false;
}
return true;
}
4.输入一个数字要求输出该数字各个位上偶数的和,如输入5584,输出12
public static int sum(String str){
int sum = 0 ;
for(int i = 0 ; i < str.length() ; i ++){
int num = Integer.parseInt(str.charAt(i)+"");
if( num % 2 == 0)
sum += num;
}
return sum;
}
public static void main(String args[]){
Scanner scann = new Scanner(System.in);
String str = scann.nextLine();
scann.close();
System.out.println(sum(str));
}
5.输入一组数N和数字b ,求出该组数字中能被b 整除的个数。如输入1 2 3 4 5 6和 2,结果输出为3
public static int div(String str,int b){
int count = 0 ;
String [] strArr = str.split(" ");
for(int i = 0 ; i < strArr.length ; i++ ){
int num = Integer.parseInt(strArr[i]);
if( num % b == 0)
count++;
}
return count;
}
public static void main(String args[]){
Scanner scann = new Scanner(System.in);
String str = scann.nextLine();
int b = scann.nextInt();
scann.close();
System.out.println(div(str,b));
}
6.求N阶楼梯共有多少种上楼方式,每次只能上1个或2个台阶
public static int palouti(int num){
if(num == 0)
return 0;
if( num == 1)
return 1;
if( num == 2)
return 2;
return palouti(num-1)+palouti(num-2);
}
7.字符串反转
public static String reverse(String str){
StringBuffer buffer = new StringBuffer(str);
return buffer.reverse().toString();
}
8.非完全平方数的判断
public static boolean isSqrtNum(int num){
int i = 1 ;
while(num > 0){
num -= i;
i += 2;
}
return num == 0 ;
}
public static void main(String args[]){
Scanner scann = new Scanner(System.in);
int num = scann.nextInt();
System.out.println(isSqrtNum(num));
}
9.输入一段话输出字的个数
10.猴子吃桃子问题
猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?
public static int eatpeaches(int days){
int sum = 1;
for(int i = days ; i > 1 ; i-- ){
sum = (sum+1)*2;
}
return sum;
}
11.给出一个字符串,由不同的单词用空格隔开的,然后呢,把这些单词的首字母取出并大写输出
如输入:hello world,输出:HW,不过代码都是要求你实现多行输入的
输出的,输入0则停止输入。
public static String optionup(String str){
String [] strarr = str.split(" ");
String s = "";
for(int i = 0 ; i < strarr.length ; i++){
s += (strarr[i].charAt(0)+"").toUpperCase();
}
return s;
}
public static void main(String args[]){
System.out.println(optionup("hello World!"));
}
12.1加2/3加3/5加4/7.......输出结果。(加号打不出来啊)
//这里注意一下,什么进位方式
public static double sumdb(int num){
double db = 0.0d;
for(int i = 1 ; i <= num ; i++){
db += i / ((2.0 * i) - 1.0);
}
return db;
}
public static void main(String args[]){
System.out.println(sumdb(2));
}
13.把字符串中的字符a和A换成c输出
public static String replaceAC(String str){
str = str.replaceAll("a","c");
str = str.replaceAll("A","c");
return str;
}
14.给你年月日,求出是这年的第几天
public static int getdays(int year,int month,int day){
int days = 0;
switch(month - 1){
case 12: days += 31;
case 11: days += 30;
case 10: days += 31;
case 9: days += 30;
case 8: days += 31;
case 7: days += 31;
case 6: days += 30;
case 5: days += 31;
case 4: days += 30;
case 3: days += 31;
case 2: days += 28;
case 1: days += 31;
}
days += day;
if( month > 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 ==0) ))
days ++;
return days;
}
public static void main(String args[]){
System.out.println(getdays(2019,2,1));
}
15.小球从100米下落,每次回弹一半距离,第几次落地后的总距离。
public static double summiles(int count){
double all = 100.0d;
for( ; count > 0 ; count --){
all /= 2.0;
}
return all;
}
public static void main(String args[]){
System.out.println(summiles(1));
}
16.从求组中找出唯一出现一次得数。
public static int unique(int [] numarr){
for(int i = 0 ; i < numarr.length ; i++){
int count = 0;
for(int j = 0 ; j < numarr.length ; j ++){
if(numarr[i] == numarr[j])
count ++;
}
if(count == 1){
return numarr[i];
}
}
return -1;
}
public static void main(String args[]){
System.out.println(unique(new int[]{1,1,1,2,3,3}));
}
17.:A,B两个字符串,求在第一个字符串出现,第二个字符串中未出现的,重复只取第一次出现,输出字符串。
public static String uniqueABstr(String stra,String strb){
String newstr = "";
for(int i = 0 ; i < stra.length() ; i ++){
String s = stra.charAt(i) +"";
if(!strb.contains(s))
newstr += s;
}
return newstr;
}
public static void main(String args[]){
System.out.println(uniqueABstr("123","2"));
}
18.加密解密,就是给你由大写字母组成的字符串,求出原来的字符串,加密 。方式很简单就是字符串后移五位,比如原来是A加密后是F,其余数字等标点符号原样输出.
凯撒密码 mod
public static String kaisacode(String str){
String newstr = "";
for(int i = 0 ; i < str.length() ; i ++){
char ch = str.charAt(i);
if( ch >= 'a' && ch <= 'z')
newstr += (char)(( ch - 'a' + 5 ) % 26 + 'a');
// 加密 +
else if( ch >= 'A' && ch <= 'Z')
newstr += (char)(( ch - 'A' + 5 ) % 26 + 'A');
else
newstr += ch;
}
return newstr;
}
public static void main(String args[]){
System.out.println(kaisacode("A"));
}
19.输入abc d
输出abc d
,就是去掉一个字符串最后的空格
public static String trimkongge(String str){
int i = str.length() - 1;
for(; i > 0 ; i --){
if(str.charAt(i) != ' ')
break;
}
return str.substring(0,i+1);
}
20.喝饮料问题,一块钱一瓶饮料,两个空瓶子换一瓶饮料
求4块钱能和多少饮料
public static int heyinliao(int num){
int money = num;
int ping = 0;
int kongping = 0;
while(money > 0){
money --;
ping ++;
kongping ++;
if(kongping == 2){
ping ++;
kongping = 0;
kongping ++;
}
}
if(kongping == 2)
ping++;
return ping;
}
21阶乘求和
public static int jiecheng(int num){
if( num == 1)
return 1;
return jiecheng(num - 1) * num;
}
public static void main(String args[]){
int sum = 0;
int num = 2;
for(int i = 1 ; i <= num ; i ++){
sum += jiecheng(i);
}
System.out.println(sum);
}