谓词--素数运算
- 第一种(存在数据溢出的情况)
int _isPrime(int n)
{
for(int i=0;i*i<=n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
这种状况总是会出现eerror answer
(出错啊出错啊)
存在数据溢出的问题:当其数据足够大超出了int型的数据范围。(为什么不用long long型的数据呢?)----在下一次的章节
解决数据溢出的素数用法
int _isPrime(int n)
{
if(n<=1)
return 0;
int m=floor(sqrt(n)+0.5);
for(int i=0;i<=m;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
但是这样的算法在很多题目里都会出现Time limexed
。。。。。。。。。。。。。。。。
四舍五入的算法
floor
的功能:
它表示的是小于其的最大整数
则:
floor(n+0.5)
将其数组变成0/1的表示方法的用处
比如hdu2016的题目里会出现开门的表示
利用初值的全部处于零的表示形式
再用其!
的符号进行解决的处理
在
#include<string.h>
memset(数组名,几个值,sizeof(数组名));
memcpy(b, a , sizeof(int)*k)`
表示的含义是把A数组的k个元素复制B
`strchr(s,ch)`
常量数组
在许多的迁移题目里面
会出现很多的往前移动,往后移动的题目
这种状况可以使用常量数组
!!!注意到的是,需要的数据不算太多。而且数据的量要求严格。
字符和整数
除模
!!!!!!!!!