目录
Everyday English
前言
函数
洛谷 P5736 【深基7.例2】质数筛
分析题意
思路点拨
AC代码
AC截图
结尾
Everyday English
Winners never quit!
胜者永不言弃!
前言
这节课我们来学习函数,虽然我断更了几周,但我还是要把最优质的内容呈现给大家。
函数
函数的标准意思用《C++Primer》的话来说是这样的:函数是一个命名了的代码块,通过调用函数并执行相应的代码,而且会产生一个结果。
通俗一点的话就是:调用函数里的代码,返回一个结果
举个栗子:大家应该都看过炸爆米花吧(反正我见过两次),只见卖的人把一大袋像玉米粒,但又不完全是玉米的东西放入炸锅。然后一阵爆炸声,一个个热乎乎,金灿灿的爆米花就出炉了。那这个栗子和函数有什么关系呢?关系可大了!在这个栗子中,我们可以把炉子看成一个函数,比如就用bomp来命名吧,而炉子执行的就是加热让爆米花膨胀(可能不准确,因为我也没见过里面长啥样)。那我们首先把玉米粒放进bomp里,然后bomp开始执行它该做的事情,最后再把爆米花返回出来。实在太乱了,整理一下,帮助大家理解:
1、放入玉米粒
2、执行bomp
3、把bomp返回的东西吃掉
bomp:把传进来的玉米粒炸成爆米花,并返回爆米花
这下你是不是有点懂了,下面我们来看一下函数的定义与使用。
声明及调用函数如下:
void 函数名()//声明函数
{
程序;
}
int main()
{
函数名();//调用函数
}
有时候我们需要往里面传入几个参数,只需把void改成你想要的类型即可,比如改成以下代码。
int 函数名(int 变量a,int ……)//声明函数,并传入参数
{
程序;
return 一个值;//返回一个值
}
int main()
{
函数名(5,6);//调用函数,这里的5就对应函数中的int a
}
注意:函数里的变量与别的函数里的变量可以重名!
那函数有什么作用呢?第一个作用就是让你的程序看起来更容易理解。第二个作用能让你的代码变得简洁许多。
洛谷 P5736 【深基7.例2】质数筛
话不多说,我们来看例题:
题目网址:【深基7.例2】质数筛 - 洛谷
分析题意
这题简单来说,就是给我们一堆数字,然后如果是质数就输出,否则不输出 。
思路点拨
首先我们得知道质数的定义是什么:
那我们怎么判断一个数有没有因数呢?
我们可以使用for循环从2开始一直循环到数字本身-1。如果这个数对i取余正好等于0,说明这个数是i的倍数,即它有因数i,不是质数(立即终止函数并返回假)。那我们还能不能再优化一下呢?仔细想想,因为因数是成对出现的,我们其实只要循环到根号这个数就OK了。
再结合一下我们今天学习的知识,把判断是否为质数的程序写成一个函数,这样就ferfact了!
AC代码
#include<bits/stdc++.h>
using namespace std;
bool isprime(int n) //声明函数
{
if(n<2) return 0;//n小于2肯定不是质数
for(int i=2;i<=sqrt(n);i++) //循环判断是否存在因数
{
if(n%i==0) return 0;
}
return 1;
}
int main()
{
int n,x;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
if(isprime(x)) cout<<x<<" "; //调用函数
}
return 0;
}
AC截图
结尾
今天是10月22日,提前祝所有程序员节日快乐!
如果没有你们就没有我们现在的5G时代,如果没有你们就没有我们现在的繁荣昌盛。
俗话说得好:“哪里有什么岁月静好,只不过是有人替你负重前行!”
在这金风送爽的日子里,我衷心祝愿天下所有的程序员工作顺利,身体健康,世界因你们而美!