您的位置:首页 > 编程语言 > C语言/C++

ACM --2001-2010

2015-10-30 22:03 351 查看
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(),就是没有得到正确输入

总体上就是,如果有正确输入,就退出循环,如果没有正确输入,就执行循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm c++