zoukankan      html  css  js  c++  java
  • NOIP2002-普及组复赛-第三题-选数

    题目描述 Description
      已知 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)。
     输入输出格式 Input/output
    输入格式:
    键盘输入,格式为:
    n , k (1<=n<=20,k<n)
    x1,x2,…,xn (1<=xi<=5000000)
    输出格式:
    屏幕输出,格式为:
    一个整数(满足条件的种数)。
     输入输出样例 Sample input/output
    样例测试点#1
    输入样例:

    4 3
    3 7 12 19

    输出样例:

    1

    思路:模拟,不解释!

    代码如下:

     1 //使用数组input保存各个数字是否被用过的标志,使用数组a保存输入的数字    
     2 #include <stdio.h>    
     3 #include <math.h>    
     4 #include <string.h>    
     5 int sort=0,n,k,a[40];    
     6 int sushu(int x) //是素数返回1,不是返回0    
     7 {    
     8     int i,y;    
     9     y=sqrt(x);    
    10     for(i=2;i<=y;i++)    
    11         if(x%i==0)    
    12             return 0;    
    13     return 1;    
    14 }    
    15 void f(int input[],int pos,int m) //f(被操作数组,所在位置,选m个数)    
    16 {    
    17     if(m==0)    
    18     {    
    19         int j,sum=0;    
    20         for(j=0;j<n;j++)    
    21             if(input[j]==1)    
    22                 sum+=a[j];    
    23         if(sushu(sum)==1)    
    24             sort++;    
    25         return;    
    26     }    
    27     else    
    28     {    
    29         int i;    
    30         for(i=pos;i<n;i++)    
    31         {    
    32             if(input[i]==0)    
    33                 input[i]=1;    
    34                 f(input,i+1,m-1);    
    35                 input[i]=0;    
    36         }    
    37     }    
    38     return;    
    39 }    
    40 int main()    
    41 {    
    42     int input[40],i;    
    43     scanf("%d%d",&n,&k);    
    44     for(i=0;i<n;i++)    
    45         scanf("%d",&a[i]);    
    46     memset(input,0,sizeof(int)*40);    
    47     f(input,0,k);    
    48     printf("%d
    ",sort);    
    49     return 0;    
    50 }    
  • 相关阅读:
    pip安装pyinstaller失败的解决方法
    导药仪端子接线方式
    聊聊信号的回勾和过冲(转)
    玩不好触发,就不算会用示波器
    TI DS125BR401A 官方DEMO板鉴赏+学习+分析
    导药仪射频卡连接线制作方式
    解决ISE14.7在win10中不稳定的问题
    VS2013编译VTK7.1.1
    QT5.8.0与VS2013环境配置
    The Architecture of Open Source Applications---VTK
  • 原文地址:https://www.cnblogs.com/geek-007/p/4454865.html
Copyright © 2011-2022 走看看