循环语句应用举例

1、利用循环实现枚举算法:

枚举法,也称为穷举法,是指从可能得集合中一一枚举各个集合,用给定的约束条件判定哪些是无用的,哪些是有用的。能使命题成立者,即为问题的解。

采用枚举算法求解问题的思路为:

(1)确定枚举对象、枚举范围和判定条件;

(2)一一枚举可能得解,验证是否是问题的解。

百钱买百鸡问题

有人有一百块钱,打算买一百只鸡。公鸡一只五元,母鸡一只三元,小鸡三只一元,求各应买多少。

#include

using namespace std;
int main()
{
	int x, y, z;
	for (x = 0;x <= 20;x++)//枚举公鸡的数目
		for (y = 0;y <= 33;y++)//枚举母鸡的数目
			for (z = 0;z <= 100;z++)//枚举小鸡的数目
				if (z % 3 == 0 && x + y + z == 100 && 5 * x + 3 * y + z / 3 == 100)//约束条件
					cout << "公鸡=" << x << "   " << "母鸡=" << y << "   " << "小鸡=" << z << endl;


	return 0;
}
#include

using namespace std;
int main()
{
	int x, y, z;
	for (x = 0;x <= 20;x++)//枚举公鸡的数目
		for (y = 0;y <= 33;y++)//枚举母鸡的数目
		{
			z = 100 - x - y;//小鸡的数目
			if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100)//约束条件
				cout << "公鸡=" << x << "   " << "母鸡=" << y << "   " << "小鸡=" << z << endl;
		}

	return 0;

用一重循环解决此问题:



2、利用循环实现迭代算法

迭代法是一种不断用变量的旧值递推新值的方法。

基本思路为:

(1)确定迭代变量

(2)建立迭代关系式

(3)对迭代过程进行控制。

求斐波那契数列前40个数

f(1)=1

f(2)=1

f(n)=f(n-1)+f(n-2)   (n>2)

#include
using namespace std;
int main()
{
	int n,t;
	int t1 = 0;
	int t2 = 1;
	for (n = 1;n <= 40;n++)
	{
		t = t1 + t2;
		t1 = t2, t2 = t;
		cout << t1 << endl;
	}



	return 0;
 }



你可能感兴趣的:(C++,刷题)