浦发机试题目

超越姐姐镇楼,祝大家机试遇到你会的问题。


祝我成功上岸

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);
        
    }

你可能感兴趣的:(浦发机试题目)