ACM --2001-2010

本文分享了C++编程中的实用技巧与经验总结,包括计算两点间距离、字符串操作、循环控制、素数判断等内容,并提供了多个实战案例帮助读者更好地理解和运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(),就是没有得到正确输入
总体上就是,如果有正确输入,就退出循环,如果没有正确输入,就执行循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值