目录
板块七:判断质数(虽然前面有类似的,但这里有改进,更严谨一点)
板块一:判断是否为素数
int flg(int x)//用函数来判断是否是素数
{
int i;
double k;
int flag=0;
k=sqrt(x);
for(i=2 ; i<=k ; i++){
if(x%i==0){
break;
}
}
if(i>k){
flag=1;
}
return flag;
}
代码解释:此代码用于判断输入整型是否为素数,如果是素数则返回1,反之返回0
板块二:计算阶乘和
int chengji(int x)
{
int chengji,sum=0;
for(int i=1;i<=x;i++)
{
int chengji=1;
for(int j=1;j<=i;j++)
{
chengji=chengji*j;
}
sum+=chengji;
}
return sum;
}
代码解释:此代码用于计算1到x的阶乘和,注意x为整型
板块三: 找出消失的数
int missingNumber(int*nums,int numsSize)
{
int sum1=0,sum2=0;
int miss;
for(int i=1;i<=numsSize;i++)
{
sum1+=i;
}
for(int i=0;i<numsSize;i++)
{
sum2+=nums[i];
}
miss=sum1-sum2;
return miss;
}
代码解释:本来是想要用异或来解,但想来想来还是直接用这个简单粗暴的做法,输入一个数组和数组的长度,就会返回数组中所缺的值,比如数组为1,3,4,就会返回2
板块四:算数字的位数
e = (int)log10(m)+1;
代码解释:此代码可以将m的位数赋值给e,记得m要为整型,e和m要先定义
板块五:逆转数组(对从最左和最右之间的数进行逆置)
void Reverse(int *nums,int left,int right)//对从left和right之间的数进行逆置
{
while(left<right)
{
int tmp=nums[left];
nums[left]=nums[right];
nums[right]=tmp;
++left;
--right;
}
}
代码解释:此代码用于对整个数组的逆转,实现过程类似于a、b互换
板块六:逆转数组(先部分逆转,再整个逆转)
void Reverse(int *nums,int left,int right)//对从left和right之间的数进行逆置
{
while(left<right)
{
int tmp=nums[left];
nums[left]=nums[right];
nums[right]=tmp;
++left;
--right;
}
}
void rotate(int*nums,int numsSize,int k)
{
if(k>=numsSize)
{
k=k%numsSize;
}
Reverse(nums,0,numsSize-k-1);
Reverse(nums,numsSize-k,numsSize-1);
Reverse(nums,0,numsSize-1);
}
代码解释:此代码用于先以k为界,分为两个部分各自进行逆转,然后再对新数组进行整个的逆转
板块七:判断质数(虽然前面有类似的,但这里有改进,更严谨一点)
bool zhishu(int num)
{
if (num <= 1)
{
return false;
}
for (int i = 2; i*i<=num; ++i)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
代码解释:此代码返回的是布尔值,请注意使用方式