【网易互娱模拟笔试】解题记录

本文记录了作者参加网易互娱模拟笔试的过程,包括第一题的个税缴纳计算,第二题的字符串缩写问题,以及第三题的进制转换挑战。作者反思了自身在笔试中的心态、速度和算法掌握情况,分享了题目要求和解决方案,并提供了参考源码链接。
摘要由CSDN通过智能技术生成

08-04那天参加了一下网易互娱的模拟笔试,那天状态不太好,再加上调试第一题花了很长时间,心态有点炸了,所以最后完成得并不理想。
总结:笔试心态还不够稳,手速还不够快,算法还不够熟。

一共 3 道题,题目都很简单,但是自己并没有做完,汗颜羞愧。记录一下。

第一题 个税缴纳

新税收政策中,起征点是5000,超过5000的部分,需要进行分级纳税,请根据新纳税表计算个人所得税,题目如图:
在这里插入图片描述
要求:
多行输入,每行输入月收入,假设无需缴纳其他费用,请输出计算出所需缴纳的个人所得税,税费四舍五入。

实现:

// 计算个人所得税,income: 个人收入, taxs: 汇率表
int calTax(int income, map<int, double> &taxs){
   
    int len = taxs.size();
    if(income <= 5000){
   
        return 0;
    }
    income  = income - 5000;
    int i   = 0;    // 记录当前为第几个区间
    int res = 0;
    map<int, double>::iterator iter_cur  = taxs.begin();      // 当前区间迭代器
    map<int, double>::iterator iter_next = ++taxs.begin();    // 下一区间迭代器,用于取得下一区间的起始值
    for(; iter_cur != taxs.end(); iter_cur++, iter_next++){
   
        if(income - iter_cur->first <= 0){
   
            break;
        }else{
   
            int range_tax;  // 当前区间所需缴纳的税额
            if(income >= iter_next->first && i < len - 1){
     // 收入大于当前纳税区间的最大值,即大于下一区间的起始值时。并且当前区间不是最后一个区间
                range_tax = round((iter_next->first - iter_cur->first
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值