Tips
来源:互联网 发布:java命令无法加载主类 编辑:程序博客网 时间:2024/05/21 17:06
1.
INT_MAX和INT_MIN
最大值也可表示为:0x7fffffff(7后面7个f,化成二进制表示共32位,除了首位为0其余位均为1)
①.LONG_LONG_MAX和LONG_LONG_MIN②.最大值也可表示为:const long long max = ~0ull>>1
printf("ULONG_LONG_MAX= %30lld\n",ULONG_MAX); //unsigned long printf("LONG_LONG_LONG_MAX= %30lld\n",LONG_LONG_MAX); printf("ULONG_LONG_MAX= %30llu\n",ULONG_LONG_MAX); //unsigned long long printf("LONG_MAX= %30d\n",LONG_MAX); printf("LONG_LOGN_MAX= %30I64d\n",LONG_LONG_MAX); // %llu printf("LONG_MIN= %30d\n",LONG_MIN); printf("LONG_LOGN_MIN= %30I64d\n",LONG_LONG_MIN); /* Result: ULONG_LONG_MAX= 18240558602387455 LONG_LONG_LONG_MAX= 9223372036854775807 ULONG_LONG_MAX= 18446744073709551615 LONG_MAX= 2147483647 LONG_LOGN_MAX= 9223372036854775807 LONG_MIN= -2147483648 LONG_LOGN_MIN= -9223372036854775808 */
2.
llabs适用于long long,labs适用于long int,abs适用于int,fabs适用于任何整型(32位以下,包括浮点型),但是返回值是double型的.
#include <iostream>#include <climits>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;int main(){ //freopen("out.txt","w",stdout); printf("INT_MIN=%d\n",INT_MIN); printf("INT_MAX=%d\n",INT_MAX); printf("LONG_LONG_MAX=%lld\n",LONG_LONG_MAX); printf("LONG_LONG_MIN=%lld\n",LONG_LONG_MIN); printf("abs(INT_MIN)=%d\n",abs(INT_MIN)); printf("abs(INT_MIN+1)=%d\n",abs(INT_MIN+1)); printf("fabs(INT_MIN)=%d\n",fabs(INT_MIN)); printf("fabs(INT_MIN+1)=%d\n",fabs(INT_MIN+1)); printf("fabs(INT_MIN)=%.3f\n",fabs(INT_MIN)); printf("fabs(INT_MIN+1)=%.3f\n",fabs(INT_MIN+1)); printf("(int)(fabs(INT_MIN))=%d\n",(int)(fabs(INT_MIN))); printf("(int)(fabs(INT_MIN+1))=%d\n",(int)(fabs(INT_MIN+1))); printf("llabs(LONG_LONG_MIN)=%lld\n",llabs(LONG_LONG_MIN)); printf("llabs(LONG_LONG_MIN+1)=%lld\n",llabs(LONG_LONG_MIN+1)); return 0;}/*Result:INT_MIN=-2147483648INT_MAX=2147483647LONG_LONG_MAX=9223372036854775807LONG_LONG_MIN=-9223372036854775808abs(INT_MIN)=-2147483648 //因为abs(INT_MIN)的正值超过了int的最大正值所以又变为最小负int了abs(INT_MIN+1)=2147483647fabs(INT_MIN)=0fabs(INT_MIN+1)=-4194304fabs(INT_MIN)=2147483648.000//double型的最大值要大于int的最大值fabs(INT_MIN+1)=2147483647.000(int)(fabs(INT_MIN))=-2147483648(int)(fabs(INT_MIN+1))=2147483647llabs(LONG_LONG_MIN)=-9223372036854775808llabs(LONG_LONG_MIN+1)=9223372036854775807*/
3.用
#include <cstring>#include <cstdio>#include <iostream>using namespace std;int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); string s[10]; for(int i=0;i<10;i++) { s[i].resize(20);//预先分配空间,且s[i].size()就随之确定 scanf("%s",&s[i][0]);//读入字符长度<20时,后面默认用' '填充 } for(int i=0;i<10;i++) { puts(s[i].c_str()); cout<<s[i]<<"size="<<s[i].size()<<endl; }}/*Input:bcbcbcdecdecdecdecdecdeaaaaaaaa7545446789754Output:bcbcbbcbcb size=20cdecdecdecdecdecdecdecdecdecdecdecde size=20aaaaaaaaaaaaaaaa size=2075454467897547545446789754 size=20 size=20 size=20 size=20 size=20 size=20 size=20*/
4.手动扩栈
#pragma comment(linker, "/STACK:102400000,102400000")
5.优先队列重新定义优先级
priority_queue<int> q1;//默认大的先出队priority_queue<int, vector<int>, greater<int> > q2;//小的先出队//自定义比较函数struct cmp { bool operator () (int x, int y){ return x > y; //x小的优先级高 }};priority_queue<int, vector<int>, cmp > q3;//定义//重载运算符struct node{ int x, y; friend bool operator < (node a,node b){//友元函数,如果用成员函数记得加const return a.x > b.x;//x小的优先级高 }};priority_queue <node> q4;//定义//最好重载'<'
6.
计算每行整数之和,以空格间隔。
#include <iostream>#include <string> // 包含string类#include <sstream> // 包含stringstreamusing namespace std;int main(){ string line; while (getline(cin, line)) { // 从输入流in中读取字符串到s中,以换行符'\n'分开 int sum = 0, x; stringstream ss(line); // 将string作为流读写 while (ss >> x) sum += x; cout << sum << "\n"; } return 0;}
0 0
- Tips
- Tips
- Tips
- Tips
- > tips
- Tips
- Tips
- Tips
- Tips
- Tips
- Tips
- tips
- tips
- tips
- TIPS
- TIPS
- tips
- Tips
- MySQL查询
- 决策树算法总结
- Leetcode 50. Pow(x, n) & 69. Sqrt(x)
- 简单介绍AngularJs Filters
- 【LeetCode】26. Remove Duplicates from Sorted Array
- Tips
- DNS zone transfer vulnerability(域传送漏洞)批量扫描
- RH笔试题回顾
- 面试之道
- 我的MBA备考之路——北漂18年(46)
- 编程之美 - 抓石头游戏(3)
- JavaScript中自定义类写法与调用例子
- 【DNS】域名解析过程
- 复杂性、易错性