恒生电子 java笔试

我是万万没有想到恒生的笔试选择题的比分占那么大

首先是不确定单选多选的选择题(选错不得分,少选得1/2),分两部分,一部分是计算机基础,10道题,一共占了四十分。

一部分是java语言相关的题,占了20分(这部分感觉比较简单)

编程题一共四十分,

mysql编程有3个,共15分,都是比较基础的

算法题有两道共25分

一道是求10到K范围内的好数,好数(153:他是3位数,然后组成他的每一个数字的3的幂的和等于他本身153=13+53+33

我用的暴力解法,然后居然通过了

/**
输入:
1000
输出:
407
371
370
153
*/

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {// 注意,如果输入是多个测试用例,请通过while循环处理多个测试用例
            int a = in.nextInt();
            for(int i=a-1;i>10;i--){
                if(i==getP(i))
                    System.out.println(i);
            }
        }
    }

    static Long getP(long num){
        int count=0;
        long temp=num;
        while(temp!=0){
            count++;
            temp=temp/10;
        }
        temp=num;
        long res=0;
        while(temp!=0){
            res+=getC(count,temp%10);
            temp=temp/10;
        }
        return res;
    }

    static long getC(int count,long num){
        if(count<=0)return 1l;
        long res=num;
        while(--count>0){
            res=res*num;
        }
        return res;
    }
}

第二道编程题

股票买卖问题,第一个参数M 代表本金,第二个参数代表多少天的股票价格,第三个参数代表这些天股票的价格,第四个参数代表允许多少次买卖

如我下面的输入,10000的本金,第一天买第二天卖,变成20000,第三天买第6天卖,变成了60000,减去本金,一共赚了50000

我的错了,就不贴代码了

/**
输入:
10000,7,new double[]{1.0, 2.0, 1.0,2.0, 2.0, 3.0, 2.0},2
输出:
50000.00000
*/

全部评论
第一题暴力9.6s侥幸通过,第二题直接print(60000.00000)偷了33.33😅
8 回复 分享
发布于 2023-04-01 09:51 上海
我暴力超时
1 回复 分享
发布于 2023-04-01 00:19 山东
第二道dp模板题
点赞 回复 分享
发布于 2023-03-31 22:42 湖南
恒生不是不招人了?
点赞 回复 分享
发布于 2023-03-31 23:23 江苏
股票买卖也是老力扣题了
点赞 回复 分享
发布于 2023-04-02 00:00 山西
第一道我暴力超时了,第二道递归就行
点赞 回复 分享
发布于 2023-04-02 22:15 黑龙江
现在有实习的通知吗,我还没收到是不是挂了
点赞 回复 分享
发布于 2023-04-03 22:25 河南
有收到实习的吗
点赞 回复 分享
发布于 2023-04-04 08:33 安徽
第一题要求的时间比通常多了五倍
点赞 回复 分享
发布于 2023-04-04 14:59 山东
大佬 第二题输入怎么处理的
点赞 回复 分享
发布于 2023-04-06 16:44 重庆
股票卖卖问题我是这样解的,Java。 void contextLoads() { double[] e = {1.0, 2.0, 1.0,2.0, 2.0, 3.0, 2.0}; double gold = 10000.0; double[] temp=new double[e.length]; for (int i = 1; i < e.length-3; i++) { double max1 = 0; double max2 = 0; for (int j = 0; j < i; j++) { if(max1 < e[i]/e[j]){ max1 = e[i]/e[j]; } } for (int z = i+1; z < e.length-1; z++) { for (int j = z+1; j < e.length; j++) { if(max2 < e[j]/e[z]){ max2 = e[j]/e[z]; } } } temp[i] = gold * max1 *max2; } for (int i = 0; i < e.length; i++) { // 最大值在temp里,遍历就行 System.out.println(temp[i]); } }
点赞 回复 分享
发布于 2023-09-16 19:55 天津

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
9 29 评论
分享
牛客网
牛客企业服务