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++信息學編程是重點學習內容之一。

猿博士課堂是智慧猿少兒編程課堂打造的一個知識性欄目。宗旨在於針對少兒編程學習中遇到的問題答疑解惑,同時提供解題思路,訓練計算思維,爲成長助力。智慧猿少兒編程課堂一直致力於中國青少年的少兒編程普惠教育,立志做讓對信息學編程感興趣的青少兒學得起、學得懂、學得會的編程課。自上線以來也得到了很多家長學員的支持,爲了回饋學員和家長,我們的課程最近開始新一輪促銷。最低一折起,敬請關注!

你好,世界

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章