牛客网——2017校招真题在线编程(python&C++)

1、n个数里的最小k个

题目描述

找出n个数里最小的k个

输入描述:

每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n
不超过100。

输出描述:

输出n个整数里最小的k个数。升序输出
示例1

输入

3 9 6 8 -10 7 -11 19 30 12 23 5

输出

-11 -10 3 6 7

python3:

def findminK(arr,K):res = sorted(arr)return res[:K]if __name__ == "__main__":try:while True:arr = [int(t) for t in input("").split()]print(" ".join(str(i) for i in findminK(arr[:-1],arr[-1]))) except:pass

2、求数列的和

题目描述

数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

输入描述:

输入数据有多组,每组占一行,由两个整数n(n < 10000)和m(m < 1000)组成,n和m的含义如前所述。

输出描述:

对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
示例1

输入

81 4
2 2

输出

94.73
3.41

Python代码:

import sys
import mathdef getSum(num1, num2):sum = 0if num1 < 0 or num1 >= 10000:return sumif num1 == 0:return sumif num2 <= 0 or num2 >= 1000:return -1if (num1 > 0 and num1 < 10000) and (num2 > 0 and num2 < 1000):sum = num1for i in range(num2-1):sum = sum + math.sqrt(num1)num1 = math.sqrt(num1)return sumif __name__ == '__main__':try:while True:arr1 = [int(t) for t in sys.stdin.readline().split()]arr2 = [int(t) for t in sys.stdin.readline().split()]print("%.2f" % getSum(arr1[0], arr1[1]))print("%.2f" % getSum(arr2[0], arr2[1]))except:pass

3、水仙花数,见博客:在线编程——水仙花数

4、分苹果

题目描述

n 只奶牛坐在一排,每个奶牛拥有 a i 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。

输入描述:

每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。

输出描述:

输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。
示例1

输入

4
7 15 9 5

输出

3

C++代码:

#include <iostream>using namespace std;int main()
{int num;cin>>num;int a[num];long long sum = 0,count = 0;for(int i=0;i<num;i++){cin>>a[i];sum += a[i];}bool flag = true;if(sum%num == 0){int average = sum/num;for(int i=0;i<num;i++){if(a[i] > average){if((a[i]-average)%2 == 0){count += (a[i]-average)/2;}else{flag = false;break;}}}}elseflag = false;if(flag){cout<<count<<endl;}elsecout<<"-1"<<endl;return 0;
}

5、数字翻转

题目描述

对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?

输入描述:

输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。

输出描述:

输出rev(rev(x) + rev(y))的值
示例1

输入

123 100

输出

223

python代码:

def rev(num):tmp = []sum = 0for i in range(len(str(num))):tmp.append(num//pow(10,i)%10)sorted(tmp)for i in range(len(tmp)):sum += tmp[len(tmp)-i-1]*pow(10,i)return sumif __name__=='__main__':try:while True:arr = [int(t) for t in input('').split()]print(rev(rev(arr[0])+rev(arr[1])))except:pass

6、n个数里出现次数大于等于n/2的数

题目描述

输入n个整数,输出出现次数大于等于数组长度一半的数。

输入描述:

每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。

输出描述:

输出出现次数大于等于n/2的数。
示例1

输入

3 9 3 2 5 6 7 3 2 3 3 3

输出

3

python3代码:

def getCondNumber(arr):res = []if len(arr)==1:res.append(arr[0])return ressorted(arr) #排序arr1 = list(set(arr)) #去重复for i in range(len(arr1)):count = 0for j in range(len(arr)):if arr1[i]==arr[j]:count+=1if count>=len(arr)/2:res.append(arr1[i])return resif __name__=='__main__':try:while True:arr = [int(t) for t in input('').split()]res = getCondNumber(arr)print(" ".join(str(i) for i in res))except:pass

7、素数对

题目描述

给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))

输入描述:

输入包括一个整数n,(3 ≤ n < 1000)

输出描述:

输出对数
示例1

输入

10

输出

2

python3代码:

import mathdef isPrime(num):if num > 1:for i in range(2, int(math.sqrt(num))+1):if (num % i) == 0:return Falsebreakelse:return Trueelse:return Falsedef getPrimeNumber(num):count = 0for i in range(2, num//2+1):if isPrime(i) and isPrime(num - i):count += 1return countif __name__ == '__main__':try:while True:num = int(input(""))res = getPrimeNumber(num)print(res)except:pass

牛客网——2017校招真题在线编程(pythonC++)相关推荐

  1. 【网易】牛客网2019校招真题(编程题)

    [网易]被3整除 [题解]打表找规律,n为3的倍数和3的倍数余2的都是可以的,3的倍数余1的数是不可以的. 1 #include<bits/stdc++.h> 2 using namesp ...

  2. 牛客网 2018校招真题 美团点评 K的倍数

    Description 牛客网 2018校招真题 K的倍数 Solving Ideas sum[i + 1]: 表示序列p[0]...p[i]的和 从长度最大的子串开始判断,当剩余需要判断子串长度不可 ...

  3. 牛客网 2018校招真题 摩拜 排序次数

    Description 牛客网 2018校招真题 排序次数 Solving Ideas 将数组a的元素拷贝到数组b 对数组b进行排序 对比数组b,统计数组a中已排序的元素个数 如:a = [2, 11 ...

  4. 牛客网 2018校招真题 滴滴出行 寻找丑数

    Description 牛客网 2018校招真题 寻找丑数 Solving Ideas 参考<剑指offer>丑数 Time complexity : O(n)O(n)O(n) Space ...

  5. 牛客网 2018校招真题 爱奇艺 最后一位

    Description 牛客网 2018校招真题 最后一位 Solving Ideas 二分查找 Solution import java.io.BufferedReader; import java ...

  6. 牛客网 2018校招真题 京东 回文

    Description 牛客网 2018校招真题 回文 Solving Ideas 计算以str[str.length() - 1]为结尾的最大的回文长度,从而判断最少需要追加多少个字母才能使整个串成 ...

  7. 牛客网 2018校招真题 美团点评 关灯游戏

    Description 牛客网 2018校招真题 关灯游戏 Solving Ideas 只与最右边的数字有关,如果最右边的数字为1,则Alice赢,否则Bob赢 假设最右边的数字为1 因为Alice是 ...

  8. 牛客网 2018校招真题 网易 骰子游戏

    Description 牛客网 2018校招真题 骰子游戏 Solving Ideas 参考<剑指offer>n个骰子的点数 考虑用两个数组来存储骰子点数的每一个总数出现的次数. 在一次循 ...

  9. 牛客网 2018校招真题 美团点评 重要节点

    Description 牛客网 2018校招真题 重要节点 Solving Ideas BFS 创建一个标记数组arrive,arrive[i][j]为true表示从i可以到达j, false则不能 ...

最新文章

  1. elk-nginx输出json格式的日志
  2. ios 学习常用网站
  3. 非模态的titlewindow,点击外部时的事件
  4. 3 v4 中心节点固定_科研人员提出新型水声网络移动节点接入协议
  5. cocos2d-x游戏实例(20)-纵版射击游戏(7)
  6. JAVA常用的数据结构集合框架总结
  7. SAP Hybris Commerce里的数据库表
  8. java selenium iframe_java selenium处理Iframe中的元素示例
  9. 日期选择控件-laydate
  10. 统计学习方法笔记(李航)———第五章(决策树)
  11. 两个方法事务调用问题
  12. 水面反光如何拍摄_如何抓拍水的不同瞬间
  13. Mac安装svn客户端
  14. 计算机数值方法(1):引论
  15. neo4j各个版本下载
  16. MyBatis开发文档
  17. 智能家庭本周锋闻:小米终于还是做了空气净化器
  18. 测试无线网网速软件,技术员教你解决怎么测试无线网络网速
  19. 机械革命 键盘灯 linux,机械革命x6Ti安装ubuntu(100%成功)
  20. 纳什均衡(Nash equilibrium)

热门文章

  1. html5墨汁跳跳闯,HTML5特效库 CSS3墨水喷墨特效源码
  2. CXF 发布WS 1 counts of IllegalAnnotationExceptions 问题
  3. Linux下抓包命令Tcpdump
  4. string库的简介和使用
  5. 通过java将Excel表格导入数据到数据库
  6. 通过JS控制页面不跟随系统文本、应用比例缩放
  7. Bigemap加载CAD(dxf)、SHP、KML数据加载并套合到卫星图像上
  8. mysql myisam 并发_MySQL的myisam解决并发读写解决方法
  9. java 包含几个字符_java中如何判断一个字符串包含几个指定字符
  10. TableLayout中stretchColumns、shrinkColumns的用法