科大讯飞提前批笔试
题目复制的这位老哥的:shyughv
链接:https://www.nowcoder.com/discuss/463749?channel=1011&source_id=subject
老哥们来看看呀~ 我实在太菜了😀
#科大讯飞##笔试题目#
链接: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 } }