拼多多 4.3 笔试

拼多多 刚刚的笔试

第二第三题 有大佬说下怎么做吗?
第二题 毫无 思路,,

第三题 不知道 Java如何 保留 double 6位小数
DecimalFormat df = new DecimalFormat("0.000000"); return df.format(count / total);
我是这样子写的 返回的是String, 然后 用 Double.valueOf() 转成double 小数就没了。。 求教
#拼多多##笔试题目#
全部评论
String.format()
点赞 回复 分享
发布于 2019-04-03 21:10
count/total 要用 (double) 强制转换一下
点赞 回复 分享
发布于 2019-04-03 21:11
保留小数,System.out.printf("%.6f", t)
点赞 回复 分享
发布于 2019-04-03 21:12
第二题 只通过了35%  不知道有木有分
点赞 回复 分享
发布于 2019-04-03 21:12
为什么不百度一下
点赞 回复 分享
发布于 2019-04-03 21:12
第二题我是把能用的数全部存到一个数组,在根据后面给的位数,从大到小算出两位数,然后求乘积
点赞 回复 分享
发布于 2019-04-03 21:13
第二题直接暴力穷举过了百分之八十五。 第三题排序以后穷举,然后乘以1000000在加上0.5转换成整数,再用浮点数除法除以1000000,保留6位,全过。
点赞 回复 分享
发布于 2019-04-03 21:15
第三题如何输入啊,数组长度不定
点赞 回复 分享
发布于 2019-04-03 21:22
亲们,请帮我看看第一题哪错了? public static void main(String[] args) { Scanner sc=new Scanner(System.in); String nn=sc.nextLine(); if(nn==null||nn.length()==0){ System.out.println(0); } int n=new Integer(nn); if(n==0||n<4||n%2!=0) System.out.println(0); String str=sc.nextLine(); String[] strings=str.split(" "); int[] arr=new int[strings.length]; for(int i=0;i<strings.length;i++){ arr[i]=new Integer(strings[i]); } Arrays.sort(arr); int max=arr[0]+arr[n-1]; int min=arr[n/2-1]+arr[n/2]; System.out.println(max-min); }
点赞 回复 分享
发布于 2019-04-03 21:24
%.6f  硬是忘了。。。自己写了个保留6位小数的方法 不敢百度唉。。话说不是不能跳出界面咋百度
点赞 回复 分享
发布于 2019-04-03 21:26
import sys import math while True:     inp=sys.stdin.readline().strip()     if not inp:         break     fre=[int(i) for i in inp.split()]     num_A=int(sys.stdin.readline().strip())     num_B=int(sys.stdin.readline().strip())     minAB=min(num_A,num_B)     maxAB=max(num_A,num_B)     if fre[0]>=minAB:         print(0)         continue     minAB_rest=minAB-fre[0]     maxAB_rest=maxAB     total=[]     A=B=0     for i in range(1,10):         while fre[i]>0:             total.append(i)             fre[i]-=1     k=1     for j in range(minAB_rest,0,-1):         A+=total[0]*pow(10,j-1)         total.pop(0)         B+=total[0]*pow(10,maxAB-k)         total.pop(0)         k+=1         maxAB_rest-=1     rest=total[:maxAB_rest]     if len(rest)==0:         print(A*B)     else:         rr=[str(i) for i in rest]         B_1=str(B)         B+=int(''.join(rr))         print(A*int(B))     
点赞 回复 分享
发布于 2019-04-03 21:46
第二题从小到大每个数依次分配一个,虽然不知道怎么证明但是过了。。
点赞 回复 分享
发布于 2019-04-04 00:13
请问有收到面试通知吗?
点赞 回复 分享
发布于 2019-04-09 18:46

相关推荐

10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务