C++编程解析-P1036选数-函数

题目1
题目2
解题思路:
该题简单。在挑选数的时候,我们从左侧开始选取起点,通过右侧数的结合,达到k个数,同时,在此过程当中,要对选取的数据进行累加求和。到达k个数的同时,去判断和是否满足条件。满足即为所求的一种情况。

程序:

#include<iostream>
#include<cmath>
using namespace std;
int n,k;
int num[20];    //存储数字 
int total;      //种数 
//素数判断 
bool isPrime(int num){
	for(int i = 2;i <= sqrt(num);i++)
		if(num%i == 0)
			return false;
	return true;
}
//查找所有可能性 
void search(int choose,int count,int sum){
	if(count == k){
		if(isPrime(sum))
			total++;
		return;
	}
	//挑数 
	for(int i = choose;i < n;i++){
		search(i+1,count+1,sum+num[i]);
	}
}
int main(){ 
	cin>>n>>k;
	for(int i =0;i < n;i++)
		cin>>num[i];
	search(0,0,0);
	cout<<total;
	return 0;
}

测试样例及程序结果:
测试样例及程序运行结果
本次我们继续运用了函数的知识解决了一道真题。想了解更多的内容,请关注:信息学奥赛NOIP通关必备-16函数(原价199现价9.9) - 网易云课堂 https://study.163.com/course/courseMain.htm?courseId=1209401803&share=2&shareId=480000001918401

现在随着全面人工智能时代的到来,少儿编程已是大势所趋,C++信息学编程是重点学习内容之一。

猿博士课堂是智慧猿少儿编程课堂打造的一个知识性栏目。宗旨在于针对少儿编程学习中遇到的问题答疑解惑,同时提供解题思路,训练计算思维,为成长助力。智慧猿少儿编程课堂一直致力于中国青少年的少儿编程普惠教育,立志做让对信息学编程感兴趣的青少儿学得起、学得懂、学得会的编程课。自上线以来也得到了很多家长学员的支持,为了回馈学员和家长,我们的课程最近开始新一轮促销。最低一折起,敬请关注!

你好,世界

发布了34 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xingzhe_666/article/details/102690233