码蹄集——进制输出、求最大公约数、最小公倍数
进制乱炖
本题考查输出的进制转换,可以直接使用c++里的format格式输出
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;int main()
{int x;cin>>x;printf("%d %o %x %u\n",x,x,x,x);//十进制 八进制 十六进制(x是小写,字母是小写) 无符号十进制//对于十六进制,x是大写时字母是大写return 0;}
MT1025 八、十六进制(具有固定格式的进制输出)
#include<iostream>using namespace std;int main()
{int a=202,b=117,c=70,d=130;printf("%d 0%o 0X%X\n",a,a,a);printf("%d 0%o 0X%X\n",b,b,b);printf("%d 0%o 0X%X\n",c,c,c);printf("%d 0%o 0X%X\n",d,d,d);return 0;
}
MT1030 最大公约数
使用辗转相除法,不用判断输入两个数的大小。
如a=3,b=5,当第一次循环时,tmp=3,a=b=5,b=tmp=3,结束后a就变成了最大值。
#include<bits/stdc++.h>using namespace std;int main()
{int a,b;cin>>a>>b;int tmp=0;while(a&&b){tmp=a%b;a=b;b=tmp;}cout<<a<<endl;return 0;
}
拓展:最大公约数可用于将两数组成的分数进行约分,得到最简分数。
MT1032 最小公倍数
最小公倍数:两数相乘后除与其最大公约数
#include<bits/stdc++.h>using namespace std;int main()
{int a,b;cin>>a>>b;//找到最大公约数后分子分母除与该数 int r=0;int tmpa=a,tmpb=b;while(tmpb&&tmpa){r=tmpb%tmpa;tmpb=tmpa;tmpa=r;}cout<<a*b/tmpb<<endl;return 0;
}
MT1037 绝对值
求绝对值函数:abs()与fabs()
#include<bits/stdc++.h>using namespace std;int main()
{double x;cin>>x;printf("%.6f",fabs(x));return 0;
}