1.N位數(shù)字與數(shù)組的轉(zhuǎn)化
將N位數(shù)字的每一位存儲(chǔ)在數(shù)組中
void to_array(int n, int num[])
{
for (int i = 0; i < N; i++)
{
num[i] = n % 10;
n = n / 10;
}
}
將數(shù)組中的數(shù)字組成N位數(shù)字
int to_number(int num[])
{
int sum = 0;
for (int i = 0; i < N; i++)
{
sum = sum*10 + num[i];
}
return sum;
}
2.最大公約數(shù)和最小公倍數(shù)
求a,b的最大公約數(shù)gcd(a,b)常用輾轉(zhuǎn)相除法
gcd(a, b)=gcd(b, a%b)
又0和任意一個(gè)整數(shù)的最大公約數(shù)都是a疏遏,則遞歸邊界是gcd(a,0)=a脉课。
int gcd(int a, int b)
{
if (b == 0) return a;
else return gcd(b, a % b);
}
最小公倍數(shù)lcm(a, b)求解是在最大公約數(shù)的基礎(chǔ)上救军,當(dāng)求得最大公約數(shù)d后,可以馬上得到a和b的最小公倍數(shù)是ab/d倘零,但是由于ab可能會(huì)溢出唱遭,因此更恰當(dāng)?shù)膶懛ㄊ莂/bd。
3.輸入多組數(shù)據(jù)
輸入多組數(shù)據(jù)呈驶,每組兩個(gè)
while(scanf("%d%d", &m, &n) != EOF)
{...}