求值法中的几种典型例题
-
- **- 求最大值**
- **-判断闰年**
- 素数
- 求最大值
- main()方法主要负责输出算法。
-
在这个方法中,主要使用的是算法结构中的顺序结构
如果在比较最大值和最小值的时候可以灵活运用三目运算符号:
<表达式1>?<表达式2>:<表达式3> 例子 int maxumum(int x,int y,int z) { return(x>y&&x>z)?x:((x<y&&y>z)?y:z) } ps: 先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果; 如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。嵌套使用三目运算符,快速求出 最大值或者最小值
-判断闰年
问题分析:
闰年的判断条件是:
(1)能被4整除,而不能被100整除的年份;
(2)能被400整除的年份
类型 | 名称 | 代表的含义 |
---|---|---|
算法 | leap(int year) | 判断year是否为闰年 |
形式参数变量 | year | 需要判断的年份 |
变量 | result | 用判断是否为闰年的标致量 |
直接上算法优化:
int leap(int year)
{
int result;
if((year%4==0&&year%100!=0||year&&400=0)
result=1;
else
result=0;
return(result);
}
👆逻辑运算从左到右,在这种多个值作判断的程序里需要善用“与”、“或”、“非”运算来提高效率和代码整洁度。
素数
问题分析:
(1)素数是指在一个大于1的自然数中,除了1和它本身之外,不能被其他自然数整除的数。
直接算法优化:
#include "math.h"
int isprime(int m)
{
int i;
for(i=2;i<sqrt(m);i++;
if(m%i==0)
return 0;
return 1;
}
这个优化即除数只需要从2到给定整数的算术平方根即可。因为数不是素数一定可以由两个数相乘得到。