4.4 循环案例选讲(阶乘、质数)

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a, n, q = 1;
	cin >> a >> n;
	for(int i = 1; i <= n; ++i)
	{
		q *= a;
	}
	cout << q << endl;
	return 0;
} 

【分析】这里输入有负数,设最大值为maxn,此时maxn的初始值不能再设置为0了,可以设置第一个数为最大值,然后用其他的数与它比较,慢慢更新最大值。

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int n, maxn;
	cin >> maxn;//假设输入的第一个数就是最大值 
	while(cin >> n)
	{
		if(n > maxn) //比较更新最大值 
			maxn = n;
	}
	cout << maxn << endl;
	return 0;
}


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	 int n, max1, max2;
	 int num = 0;
	 while (cin >> n)
	 {
	 	++num;
	 	if (num == 1)//假设初始值最大 
	 	{
	 		max1 = n;
		}
		else if(num == 2)//两个数的情况 
		{
			if(n > max1)
			{
				max2 = max1;
				max1 = n;				
			}
			else
				max2 = n;
		}
		else //3个及其以上数的情况 
		{
			if(n >= max1)
			{
				max2 = max1;
				max1 = n;				
			}
			else if(n > max2)
			{
				max2 = n;
			}
		}
	 }
	 cout << max1 << " " << max2 << endl;
	 return 0;
} 


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int n, f1, f2, f3;
	cin >> n;
	f1 = 1, f2 = 1;
	if(n == 1 || n == 2)
		cout << "1" << endl;
	else
	{
		for(int i = 3; i <= n; ++i)
		{
			f3 = f1 + f2;
			f1 = f2;
			f2 = f3;
		}
		cout << f3 << endl;
	}
	return 0;
} 


#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int n, sum = 0, q = 1;
	cin >> n;
	for(int i=1; i<=n; ++i)
	{
		q *= i;
		sum += q;
	} 
	cout << sum << endl;
	return 0;
} 


一个数,如果只有1和它本身两个 因数 ,这样的数叫质数(或素数)。如2、3、5、7都是质数。
一个数,如果除了1和它本身还有别的因数,这样的数叫 合数 。如4、6、15、49都是合数。
1既不是质数,也不是合数。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int n;
	cin >> n;
	cout << 2 << endl;
	for(int i = 3; i <= n; i += 2)//i += 2删除偶数的情况 
	{
		int j;
		for(j = 3; j < i; j += 2)//j += 2 奇数的因子不可能为偶数,为奇数 
		{
			if(i % j == 0) break;
			if(j * j > i) break;//j大于i的平方根后,另一个因子肯定小于i的平方根,已经计算过了	
		}
		if(j * j > i) 
			cout << i << endl;
	}
	return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
	int n;
	cin >> n;
	cout << 2 << endl;
	for(int i = 3; i <= n; i += 2)//i += 2删除偶数的情况 
	{
		int j;
		for(j = 3; j < sqrt(i); j += 2)//j += 2 奇数的因子不可能为偶数,为奇数 
		{
			if(i % j == 0) break;
		}
		if(j > sqrt(i))
			cout << i << endl;
	}
	return 0;
}



猜你喜欢

转载自blog.csdn.net/yanyanwenmeng/article/details/81029373
4.4