科大讯飞提前批笔试

题目复制的这位老哥的:shyughv
链接:https://www.nowcoder.com/discuss/463749?channel=1011&source_id=subject

题目一:钱币,找最少数量问题
有1元、5元、10元、50元、100元不同面额的钱; 第一行输入不同面额的钱对应的数量,第二行输入需要支付的价格; 需要满足支付价格且使用钱的数量最少;
输出满足的最小数量,没有符合的输出-1

题目二: 排序问题
给出一个数字序列,需要输出排序过程

题目三:两矩形相交问题
给出8个数据,前四个数据代表第一个矩形的对角线上的点坐标,后四个数据代表第二个矩形的对角线上的点坐标
判断两矩形能否相交,能则输出1,否则输出0

题目四:输入任意字符串,从字符串中提取整数

求助下:
// 输入一行字符串,输出其中的整数 ,如 +1a2 输出12
import java.util.Scanner;
public class test4 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLine()) {//0

            String input = in.nextLine();
            String s = input.trim();
            String res = "";
            if(s!=null && !"".equals(s)){
                for(int i=0;i<s.length();i++){
                    if(s.charAt(i)>=48 && s.charAt(i)<=57){
                        res += s.charAt(i);
                    }
                }
            }
            System.out.println(res);
        }//0
    }
}
第四题 只过了 71%

#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;

        int main(){
        int x1,x2,x3,x4,y1,y2,y3,y4;
        cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
        int length = 0;

        length = sqrt((abs(x1+x2-x3-x4)/2*abs(x1+x2-x3-x4)/2) + (abs(y1+y2-y3-y4)/2*abs(y1+y2-y3-y4)/2));

        if((length<(abs(x2-x1)+abs(x4-x3))/2) && (length<(abs(y2-y1)+abs(y4-y3))/2)){
        cout<<1;
        }
        else{
        cout<<0;
        }
        return 0;
        }
第三题 80%

第二题快排

第一题我写的垃圾代码 60%

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] data = new int[5];
        while (in.hasNext()) {//0
            int res = 0;
            for(int i=0;i<5;i++){
                data[i] = in.nextInt();
            }
            int k = in.nextInt();
            int tmp = k;
            while(k>0){
                if(k>=100 && data[4]>0){
                    if(data[4]*100 + data[3]*50 + data[2]*10 + data[1]*5 + data[0]*1 < k){
                        System.out.println(-1);
                        break;
                    }
                    k = k-100;
                    res++;
                    data[4]--;
                }
                if(k>=50 && data[3]>0){
                    if(data[3]*50 + data[2]*10 + data[1]*5 + data[0]*1 < k){
                        System.out.println(-1);
                        break;
                    }
                    k = k-50;
                    res++;
                    data[3]--;
                }
                if(k>=10 && data[2]>0){
                    if(data[2]*10 + data[1]*5 + data[0]*1 < k){
                        System.out.println(-1);
                        break;
                    }
                    k = k-10;
                    res++;
                    data[2]--;
                }
                if(k>=5 && data[1]>0){
                    if(data[1]*5 + data[0]*1 < k){
                        System.out.println(-1);
                        break;
                    }
                    k = k-5;
                    res++;
                    data[1]--;
                }
                if(k>=1 && data[0]>0){
                    if(data[0]*1 < k){
                        System.out.println(-1);
                        break;
                    }
                    k = k-1;
                    res++;
                    data[0]--;
                }

            }
            if(k==0)
                System.out.println(res);

        }//0
    }
}

老哥们来看看呀~ 我实在太菜了😀

#科大讯飞##笔试题目#
全部评论
想不懂没法AC一题,我要哭了
点赞 回复 分享
发布于 2020-07-31 16:11

相关推荐

评论
点赞
3
分享
牛客网
牛客企业服务