zhangas

Pay more attention

0%

杂物

整数转string

1
string str = to_string(*val);

and support int, LL, ULL, double types

进制转换

1
2
3
4
5
6
7
十进制转十六进制
char c[30];
sprintf(c,"%x",num);
cout<<c;
十进制转八进制
sprintf(c,"%o",num);
cout<<c;

factorial n.阶乘
inversion n.倒置,反转 (逆元)
fact[]表示阶乘 infact表示阶乘的逆元

回文串

输入字符串s 判断是否是回文串

1
2
3
4
5
6
7
8
9
10
11
12
13
scanf("%s",&c);
int l=strlen(c);
int f=0;
for(int i=0, j=l - 1;i<j;i++,j--){
if(c[i]!=c[j]){
f=1;
printf("No.\n");
break;
}
}
if(!f){
printf("Yes.\n");
}

计算e

利用公式e=1+1/(1!)+…+1/(n!) 求e的近似值

1
2
3
4
5
6
7
8
int n;
scanf("%d",&n);
double fn=1.0,sum=1.0;//fn计算阶乘 注意两者都为浮点型
for(int i=1;i<=n;i++){
fn*=i;
sum+=1/fn;
}
printf("%.*lf",10,sum);

前导0输出

printf输出数字,位数不够前面补0,适用于输出编号

printf的输出格式%[flags][width][.perc][F|N|h|l]type
用到了flags中的0,将输出的前面补上0,直到占满指定列宽为止

1
2
int a=1;
printf("%03d",a);

output: 001

1
2
3
int a=1;
int n=3; //n表示位数 用 * 代替位数,在后面的参数列表中用变量控制
printf("%0*d",n,a);

output: 001

最小公倍数和最大公约数的计算

借助库函数__gcd()

int、long long类型都可以,需要注意的是两个类型必须要相同,还有不能用浮点型

最大公约数

1
2
3
4
5
6
7
8
9
#include<iostream> 
#include<algorithm>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<__gcd(a,b);
return 0;
}

最小公倍数*最大公约数=两数之积

1
cout<<a*b/__gcd(a,b);