爆破算法

爆破算法

爆破算法顾名思义就是通过计算机可以进行大量的重复运算,来让计算机通过不断的实验来得出想要的答案。下面直接通过案介绍一下爆破,算法重在思想,例题如下:
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

public class Main {
	public static void main(String[] args) {

		for (int start = 1; start < 236; ++start) {
			for (int end = 10; end < 236; ++end) {

				if ((end - start + 1) * (end + start) / 2 == 236 && end > start) {
					System.out.println("开始吹蜡烛的岁数为:" + start);
					System.out.println("结束吹蜡烛的岁数为:" + end);
				}
			}
		}
	}

}
这题我们不知道他开始吹蜡烛与结束吹蜡烛的时间,所以我们需要定义俩个变量来表示开始与结束吹蜡烛的年龄,假设我们设开始吹蜡烛的年龄是x,结束吹蜡烛的年龄是y,可得总的方程(y-x+1)(y+x)/2=236**for循环来遍历每一个可能的值,最后得到他开始吹蜡烛与结束吹蜡烛的年龄。**



## 总结

 1. 在比赛中适用场合
爆破算法虽然简单便利,但是程序时间复杂度较高,而在一般的算法比赛中,程序设计题都是有程序的运行时间规定的,所以爆破一般用在前面的填空题中。
 2. 适用的题目类型
 题目逻辑简单,一般给定一个或几个条件,然后一般是找二元一次方程,再用for循环来遍历所有可能的值,在循环中加if来找出满足的值即可

## 附
整理的几道爆破算法题,希望对大家认识与理解爆破算法有帮助https://download.csdn.net/download/qq_36310758/10886737

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值