c++菜鸟,之前开始刷acm的题目,感觉收获不少,来跟大家分享一下,都是比较简单地东西~
2001-计算两点间的距离
1、abs和fbs的区别
1.abs和fabs,abs是对整数取绝对值,而fabs是对浮点数取绝对值。
2.函数原型:
int abs(int x)
double fabs(double x)
2、保留小数点
#include <iomanip>
cout <<setprecision(2) <<std::fixed <<x <<endl;
3、结束输出 ^Z
2005-第几天
1、关于每月的天数可以用数组
2007-求平方和和立方和
1、注意比较两个区间数的大小
2010-水仙花数
1、break和continue的区别
//break是结束整个循环体,continue是结束单次循环
while(x++ < 10){
if(x == 3) { break; }
printf("%d\r\n", x);
}
结果是输出 1 2 就退出了整个while循环
用continue
while(x++ < 10){
if(x == 3) { continue; }
printf("%d\r\n", x);
}
结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环
2、%和/的优先级一样
2012-素数判定
1、判断素数
bool isPrime(int n){
if (n < 2) return false;
if (n == 2) return true;
for (int i = 3; i*i<n; i+=2) {
if (n % i == 0) return false;
}
return true;
}
2017-字符串判定
1、虚函数
见另外一个笔记–虚函数。。。
2、获取字符串
见另外一个笔记–c++ 常用获取字符串方法
3、strlen和sizeof的区别
见另外一个笔记—strlen和sizeof
2018-母牛的故事
1、strcpy 和strcat
cpy是直接赋值,cat是补充
2、数组初始化
int age[4] = {1};
printf("%d%d%d%d",age[0],age[1],age[2],age[3]);
输出:1000
3、清空数组
memset(count,NULL,sizeof(count));
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )
用 ch 替换并返回 s 。
1166-敌军布阵
1、strcmp
先比较两个字符串的第一个字符的大小,若相等则比较第二个,以此类推直至找出较大的那一个。若两者相等,则表达式的值为0,若前者大,值为﹢ 后者大,值为-
2015-偶数求和
1、getline
cin>>num 之后回车会直接执行get line,因为回车被其捕获了
2544-最短路
1、inf
最大值,无穷大
2044-一只小蜜蜂
1、数字很大的时候应该用longlong
1106-排序
1、swap函数
void swap(int *x,int *y){
int temp;
temp=*x;
*x = *y;
*y=temp;
}
2098-分拆素数和
1、求n以内的素数
int sushu[1300];
int builf(int n){
sushu[0]=2;
sushu[1]=3;
int flag=0;
int num=2;
for (int i=5; i<n; i=i+2) {
flag=0;
for (int j=0; (sushu[j]*sushu[j])<=i; j++) {
if (i%sushu[j]==0) {
flag=1;
break;
}
}
if(flag==0){
sushu[num]=i;
num++;
}
}
return num;
}
1272-小希的迷宫
1、scanf
scanf函数的返回值是正确获得输入变量的个数。
~scanf(),就是没有得到正确输入
总体上就是,如果有正确输入,就退出循环,如果没有正确输入,就执行循环。