2019秋招华为二次笔试题解(含题目) 点赞有offer

这次是水题暴力集中营,题目在五楼,顺便求宇宙条视频面经

1.这个代码交上去是对的,但是对于-1-1AB这种数据就不能得到正确结果。修改代码在下面
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str;
        str = in.nextLine();
        int i, ans = 0, tmp = 0, flag = 1;//1表示正整数
        for (i = 0; i < str.length(); i++) {
            if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                tmp = tmp * 10 + flag * (str.charAt(i) - '0');
            } else if (str.charAt(i) == '-') {
                flag = flag == 1 ? -1 : 1;
            } else {
                ans += tmp;
                tmp = 0;
                flag = 1;
            }
        }
        System.out.println(ans + tmp);
    }
}
1.修改代码
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str;
        str = in.nextLine();
        int i, ans = 0, tmp = 0, flag = 1;//1表示正整数
        for (i = 0; i < str.length(); i++) {
            if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                tmp = tmp * 10 + flag * (str.charAt(i) - '0');
                if(i<str.length()&&(str.charAt(i+1)<'0'||str.charAt(i+1)>'9')){
                    ans+=tmp;
                    tmp=0;
                    flag=1;
                }
            } else if (str.charAt(i) == '-') {
                flag = flag == 1 ? -1 : 1;
            } else {
                ans += tmp;
                tmp = 0;
                flag = 1;
            }
        }
        System.out.println(ans + tmp);
    }
}
2.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t, n, m, t1, i;
        int[] f = new int[60];
        t = in.nextInt();
        for (t1 = 0; t1 < t; t1++) {
            n = in.nextInt();
            m = in.nextInt();
            for (i = 1; i <= 4; i++) {
                f[i] = n * (i+1);
            }
            for (i = 5; i <= m; i++)
                f[i] = f[i - 1] + f[i - 4];
            System.out.println(f[m]);
        }
    }
}

3.

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] a = new int[10];
        int[] b = new int[10];
        for (int i = 0; i<10; i++) {
            a[i] = sc.nextInt();
        }
        for (int i = 0; i<10; i++) {
            b[i] = sc.nextInt();
        }

        //(a + bi) * (c + di) = (a*c - b*d) + (a*d + b*c)i
        int[] c = new int[18];
        c[0] = getReal(a[0], a[1], b[0], b[1]);
        c[1] = getXu(a[0], a[1], b[0], b[1]);
        c[2] = getReal(a[2],a[3],b[0], b[1]) + getReal(a[0],a[1],b[2],b[3]);
        c[3] = getXu(a[2],a[3],b[0], b[1]) + getXu(a[0],a[1],b[2],b[3]);
        c[4] = getReal(a[4],a[5],b[0], b[1]) + getReal(a[2],a[3],b[2],b[3]) + getReal(a[0],a[1],b[4],b[5]);
        c[5] = getXu(a[4],a[5],b[0], b[1]) + getXu(a[2],a[3],b[2],b[3]) + getXu(a[0],a[1],b[4],b[5]);
        c[6] = getReal(a[6], a[7],b[0], b[1])+getReal(a[4],a[5],b[2],b[3])+getReal(a[2],a[3],b[4],b[5])+getReal(a[0],a[1],b[6],b[7]);
        c[7] = getXu(a[6], a[7],b[0], b[1])+getXu(a[4],a[5],b[2],b[3])+getXu(a[2],a[3],b[4],b[5])+getXu(a[0],a[1],b[6],b[7]);
        c[8] = getReal(a[8], a[9],b[0], b[1])+getReal(a[6], a[7],b[2], b[3]) +getReal(a[4],a[5],b[4],b[5])
                + getReal(a[2],a[3],b[6],b[7]) + getReal(a[0],a[1],b[8],b[9]);
        c[9] = getXu(a[8], a[9],b[0], b[1])+getXu(a[6], a[7],b[2], b[3]) +getXu(a[4],a[5],b[4],b[5])
                + getXu(a[2],a[3],b[6],b[7]) + getXu(a[0],a[1],b[8],b[9]);
        c[10] = getReal(a[2],a[3],b[8],b[9]) + getReal(a[4],a[5],b[6],b[7])+getReal(a[6],a[7],b[4],b[5])+
                + getReal(a[8],a[9],b[2],b[3]);
        c[11] = getXu(a[2],a[3],b[8],b[9]) + getXu(a[4],a[5],b[6],b[7])+getXu(a[6],a[7],b[4],b[5])+
                + getXu(a[8],a[9],b[2],b[3]);
        c[12] = getReal(a[4],a[5],b[8],b[9]) + getReal(a[6],a[7],b[6],b[7]) +getReal(a[8],a[9],b[4],b[5]);
        c[13] = getXu(a[4],a[5],b[8],b[9]) + getXu(a[6],a[7],b[6],b[7]) +getXu(a[8],a[9],b[4],b[5]);
        c[14] = getReal(a[6],a[7],b[8],b[9]) + getReal(a[8],a[9],b[6],b[7]);
        c[15] = getXu(a[6],a[7],b[8],b[9]) + getXu(a[8],a[9],b[6],b[7]);
        c[16] = getReal(a[8],a[9],b[8],b[9]);
        c[17] = getXu(a[8],a[9],b[8],b[9]);
        for (int num : c) {
            System.out.println(num);
        }
    }

    private static int getReal(int a, int b, int c, int d) {
        return a*c - b*d;
    }

   private static int getXu(int a, int b, int c, int d) {
        return a*d + b*c;
    }
}
#华为##题解##秋招##笔试题目#
全部评论
下周面头条,感觉要一轮游,好慌、
点赞 回复 分享
发布于 2018-08-29 21:49
厉害
点赞 回复 分享
发布于 2018-08-29 22:40
说什么要点个赞👍
点赞 回复 分享
发布于 2018-08-29 23:44
1.
点赞 回复 分享
发布于 2018-08-30 12:31
2.
点赞 回复 分享
发布于 2018-08-30 12:33
3.
点赞 回复 分享
发布于 2018-08-30 12:35
第一题写的有问题-1-1AB就过不了
点赞 回复 分享
发布于 2018-08-30 14:12
谁能解释一下第二题是啥意思。。
点赞 回复 分享
发布于 2018-09-05 21:12
import java.util.*; public class Main{ public static class Complex { public int real; public int image; public Complex(int real,int image){ this.real = real; this.image = image; } public static Complex mul(Complex c1,Complex c2){ int newReal = c1.real * c2.real - c1.image * c2.image; int newImage = c1.real * c2.image + c1.image * c2.real; return new Complex(newReal, newImage); } public static Complex add(Complex c1, Complex c2){ return new Complex(c1.real+c2.real,c1.image+c2.image); } public void show(){ System.out.println(real); System.out.println(image); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); Complex[] a = new Complex[5]; Complex[] b = new Complex[5]; for(int i=0;i<5;i++){ a[i] = new Complex(sc.nextInt(),sc.nextInt()); } for(int i=0;i<5;i++){ b[i] = new Complex(sc.nextInt(),sc.nextInt()); } for(int i = 8; i >=0; i--){ getOne(i, a, b).show(); } } public static Complex getOne(int index, Complex[] a, Complex[] b){ Complex res = new Complex(0,0); for(int k = 0;k <=index ;k++){ Complex aa = (k>=0 && k<=4) ? a[k] : new Complex(0,0); Complex bb = (index-k>=0 && index-k<=4) ? b[index-k] : new Complex(0,0); res = Complex.add(res, Complex.mul(aa, bb)); } return res; } }
点赞 回复 分享
发布于 2018-09-12 08:36

相关推荐

11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
评论
45
22
分享
牛客网
牛客企业服务