【蓝桥杯常用算法练习】程序设计与算法——【枚举】

  • 枚举法,也叫暴力破解法,是一种基于逐个尝试答案的一种问题求解策略。

                1.完美立方

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第1张图片

直接枚举所有可能的情况,注意枚举的时候没必要a, b, c, d都从1到N,控制b,c,d大小关系一来可以减少程序执行时间,二来,可以避免相同一组数据输出多次。

#include 
main()
{
	int a,b,c,d,N;
	scanf("%d",&N); 
	for(a=2;a

                2.生理周期

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第2张图片

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第3张图片

  • 找到规律对遍历进行优化呢。对问题分析发现,在找到第一次体力高峰的之后就可以+23的倍数进行枚举,在找到体力和情商的同时高峰后我们就可以以+23*28的倍数进行枚举。
#include 
main()
{
	int p,e,i,d,k;
	scanf("%d,%d,%d,%d",&p,&e,&i,&d);
	for(k=d+1;(k-p)%23!=0;k++);
	for(;(k-e)%28!=0;k+=23);
	for(;(k-i)%33!=0;k+=23*28);
		printf("the next triple peak occurs in %d days",k-d);
	return 0;	
}

 

                3.熄灯问题

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第4张图片

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第5张图片

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第6张图片

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第7张图片

【蓝桥杯常用算法练习】程序设计与算法——【枚举】_第8张图片

 

 

 

 


 

 

你可能感兴趣的:(算法,蓝桥杯)