1033: 递归3(组合+判断素数)
2017-10-06 20:02
239 查看
时间限制: 1 Sec 内存限制: 128 MB
提交: 1015 解决: 584
[提交][状态][讨论版]
题目描述
【题意】
已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。
从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。
例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:
3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。
现在,要求你计算出和为素数共有多少种。
例如上例,只有一种的和为素数:3+7+19=29。
【输入格式】
第一行两个整数:n , k (1<=n<=20,k<n)
第二行n个整数:x1,x2,…,xn (1<=xi<=5000000)
【输出格式】
一个整数(满足条件的方案数)。
【样例输入】
4 3
3 7 12 19
【样例输出】
1
简单的递归加上素数判断
提交: 1015 解决: 584
[提交][状态][讨论版]
题目描述
【题意】
已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。
从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。
例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:
3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。
现在,要求你计算出和为素数共有多少种。
例如上例,只有一种的和为素数:3+7+19=29。
【输入格式】
第一行两个整数:n , k (1<=n<=20,k<n)
第二行n个整数:x1,x2,…,xn (1<=xi<=5000000)
【输出格式】
一个整数(满足条件的方案数)。
【样例输入】
4 3
3 7 12 19
【样例输出】
1
简单的递归加上素数判断
#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #include<cmath> using namespace std; int n,m,v[100],a[100],t,s,c[100]; int pd( int a) { int i; if(a<2) return 0; for(i=2;i<=sqrt(a);i++) if(a%i==0) return 0; return 1; } void find(int k) { if(k==m+1) { s=0; for(int i=1;i<=m;i++) s+=a[c[i]]; if(pd(s)==1) t++; } else { for(int i=c[k-1]+1;i<=n;i++) if(v[i]==1) v[i]=0,c[k]=i,find(k+1),c[k]=0,v[i]=1; } } int main() { cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i],v[i]=1; c[0]=0; find(1); cout<<t; return 0; }
相关文章推荐
- caioj1033:递归3(组合+判断素数)
- 【递归入门】组合+判断素数
- 【递归入门】组合+判断素数
- 5974 Problem C 【递归入门】组合+判断素数
- 递归实现全排列和组合
- POJ 1753 (组合+递归) Flip game 简单易懂的源代码
- 排列、组合、递归、搜索
- leetcode之深搜递归回溯类之排列与组合类-----77/39/40/216/317 组合 78/90/368 子排列 22/79/93/131 典型递归回溯 46/47 全排列
- 1032: 递归2(组合)
- k组合生成问题-非递归
- 剑指Offer面试题28字符串的排列组合(递归和栈)
- 递归----组合
- 递归学习_组合_普通选择性组合排列
- 12个字母任选5个进行排列组合,不可重复 javascript 递归实现
- 递归实现从n个数中选r个数的组合数
- 组合函数递归和非递归实现
- thinkcmf 3.x 用递归重组方法组合出后台菜单
- pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!
- 非递归方式遍历所有组合
- 简单易懂的程序语言入门小册子(4):基于文本替换的解释器,递归,如何构造递归函数,Y组合子