判断一个数是否为奇数
#include<iostream>
using namespace std;
int main()
{
if(3&1)cout<<"yes1"<<endl;
if(4&1)cout<<"yes2"<<endl;
return 0;
}
求两个数的最大公约数
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
求m个数的最小公倍数
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int main()
{
int m,t,p=1;
cin>>m;
while(m--)
{
cin>>t;
p=p/gcd(p,t)*t;//两个数的最小公倍数=两数的乘积/两数的最大公约数
//此处若写成(p*t)/gcd(p,t)其中p*t的值可能会溢出
}
cout<<p<<endl;
}
求一个数的因子个数
//以100以内的数为例,求每个数的因子个数
#include<cstdio>
#include<cstring>
using namespace std;
const int M=101;
int main()
{
int i,t,num[M];
memset(num,0,sizeof(num));//起始时置零
for(i=1;i<M;i++)
{
num[i]++;//每个数是其本身的因子
t=i+i;//t表示i的倍数
while(t<M)
{
num[t]++;//若i的倍数为t则i必为t的因子
t+=i;
}
}
for(i=1;i<M;i++)
printf("%d ",num[i]);
return 0;
}
矩阵乘法
typedef struct Node
{
int m[11][11];
}Matrix;
Matrix Mul( Matrix a, Matrix b ) //矩阵乘法
{
Matrix c;
for( int i=0; i<n; ++ i )
{
for( int j=0; j<n; ++ j )
{
c.m[i][j]=0; //特别注意
for( int k=0; k<n; ++ k )
{
c.m[i][j] += a.m[i][k]*b.m[k][j];
}
}
}
return c;
}