2017校招真题编程训练--丢失的三个数 素数对 n个数最小的k个
2018-03-17 17:04
501 查看
时间限制:1秒 空间限制:32768K 热度指数:10669 算法知识视频讲解
时间限制:1秒 空间限制:32768K 热度指数:14000 算法知识视频讲解
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
题目描述
现在有一个数组,其值为从1到10000的连续增长的数字。出于某次偶然操作,导致这个数组中丢失了某三个元素,同时顺序被打乱,现在需要你用最快的方法找出丢失的这三个元素,并且将这三个元素根据从小到大重新拼接为一个新数字,计算其除以7的余数。 例:丢失的元素为336,10,8435,得到的新数字为103368435,除以七的余数为2。输入描述:
输入数据为一行,包含9997个数字,空格隔开。
输出描述:
输出为一行,包含一个数字。示例1
输入
同题设例子输入
输出
2
#include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <string> #include <cstdlib> #include <stack> #include <map> #include <set> #include <queue> using namespace std; typedef long long ll; ll mark[10010]; ll num[5]; ll work(ll n) { ll cnt=0; while(n) { cnt++; n/=10; } return cnt; } int main(void) { memset(mark,0,sizeof(mark)); for(ll i=0;i<9997;i++) { ll x; cin>>x; mark[x]=1; } ll cnt=0; for(ll i=1;i<=10000;i++) { if(mark[i]==0) { num[cnt++]=i; } } sort(num,num+cnt); ll wei3=work(num[2]); ll wei2=work(num[1]); ll wei1=work(num[0]); ll shu = num[0]*((ll)pow(10.0,(wei3+wei2)))+num[1]*((ll)pow(10.0,wei3))+num[2]; printf("%lld\n",shu%7); return 0; }
时间限制:1秒 空间限制:32768K 热度指数:14000 算法知识视频讲解
题目描述
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
输入描述:
输入包括一个整数n,(3 ≤ n < 1000)
输出描述:
输出对数示例1
输入
10
输出
2#include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <string> #include <cstdlib> #include <stack> #include <map> #include <set> #include <queue> using namespace std; typedef long long ll; const int maxn = 1e5+100; bool is_prime[maxn]; int mark[maxn]; void work() { memset(mark,0,sizeof mark); memset(is_prime,false,sizeof(is_prime)); for(int i=2;i<=maxn;i++) { if(mark[i]==0) { is_prime[i]=true; for(int j=i;j+i<=maxn;j+=i) mark[j]=1; } } } int main(void) { work(); int n; scanf("%d",&n); int res=0; for(int i=2;i<=n/2;i++) { if(is_prime[i]&&is_prime[n-i]) res++; } cout<<res<<endl; return 0; }时间限制:1秒 空间限制:32768K 热度指数:14621 算法知识视频讲解
题目描述
找出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
#include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <string> #include <cstdlib> #include <stack> #include <map> #include <set> #include <queue> using namespace std; typedef long long ll; const int maxn = 1e5+100; int a[maxn]; int main(void) { int cnt=0; while(scanf("%d",&a[cnt])!=EOF) { cnt++; } sort(a,a+cnt-1); for(int i=0;i<a[cnt-1];i++) { if(i==a[cnt-1]-1) printf("%d\n",a[i]); else printf("%d ",a[i]); } return 0; }
相关文章推荐
- 2017校招真题编程训练--数串
- 2017校招真题编程训练--树的高度
- 2017校招真题编程训练--句子反转 倒置字符串
- 2017校招真题编程训练--幸运数 进制转换
- 2017校招真题编程训练--计算糖果
- 2017校招真题编程训练--电话号码分身
- 2017校招真题编程训练--水仙花树
- 2017校招真题编程训练--求数列的和
- 【真题】京东2017校招编程题 幸运数
- 2017校招真题在线编程
- 2017校招真题在线编程 异或
- 2017校招真题在线编程之素对数
- Java 2017腾讯校招真题之素数对
- 【真题】京东2017校招编程题 集合
- 腾讯2017校招编程:一个数等于两个素数的和
- 素数对--腾讯2017校招编程
- 统计字符(去哪儿2017校招真题)
- 上次修改了的正确版:编程求出大于m的最小素数
- 【newCoder】2016校招真题在线编程 风口的猪-中国牛市
- 2017 滴滴校招编程