整形定义:
int(10^9-2^32) long long(10^18-2^64) %-02lld(左对齐2位域不足0补)
浮点型定义:
float double %-.2llf(左对齐保留两位小数)
字符型: %c(单个字符多则丢失) %s(获取一个字符串) char a='a';字符常量可参与数值运算
结构体 :
struct stdu{inta;char a[100]}a[10];连续_struct stdu{inta;char a[100]};-struct stdu a,b,c;(可不)
输入:
scanf("%s",&a);(空格无效) ch=getchar(); gets(a);[空格有效,防止吞掉回车用getchar()]
输出:
printf("\n \\ %% \' \" "); puthar('\n');puthar(ch); puts(a);
字符串输入:
cahr a[5]="sda";scanf("%s",&a);for-scanf;gets(a);
字符串输出:
printf("%s",a);for-printf; puts(a);
变量类型转化:
(int)a/b;(double)a/b;
循环输入:
while(gets(a));while(~scanf())while(scanf()!=EOF) ctrl+z/c结束输入
另类赋值:
a=a>0?a:(-a);
else,break;
与最近的一个if成体系,跳出最近for循环;
嵌套:
if-else if-else switch()-case: 均可嵌套
最大公约数公倍数: 辗转相除法
(大取余小 小取余余数 直至余数为0则最大公约数为上一余数,最小公倍数为原数乘积/上一余数)
冒泡排序:
for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++)}
素数优化:
for(i=2;i*i<=n;i++)// for(i=2;i<n/2;i++)
<string.h> <cstring>
strlen(); strcmp(,);strcpy(,); 注:strlwr(),strupr(),并不是适用于所有系统!~
<math.h> <cmath>
sqrt();
<strlib.h>
<algorithm>using namespace std;
sort(开始,结束/or直接整体,自定义函数)对区间内所有顺序排序
如:int cmp(int a,int b) { return a>b ;} 按照从大到小排序
TX1-FWFUif-else闰年:
if((year%4==0&&year%100!=0)||year%400==0)-2-29
TX2-FWFUfor
for(i=0;i<n-1;i+2)
TX2-AWFU素数判定
for(i=2;i*i<=n;i++)if(n%i==0)return 0;else return 1;(后文携带素数代码优化版)
TX4A-IWFU注意循环与break;
~与!=EOF while(n--) if()break; while( gets() ) while(cin>>a)
TX4-JWFU
%==0?优化 某2因子乘积为此数注意sum-1(因子小于本身) int与long long的选择使用否则时间超时
重点(敲黑板) :
异或运算^任何数与0^为本身,相同的2个数^为1,不同的2高数^为0;通过这样可以找出一组数中存在唯一的呢个
素数优化代码()
#include<iostream>
#include<cstring>//下文memset(,,)所在头文件 using namespace std;
int a[100001];//数组之类的开的大必须全局
int main()
{
int n,m;
memset(a,1,sizeof(a));//常用的数组初始化直接百度
a[1]=0;
for(int i=2; i*i<=100000; i++)
{
for(int j=2; j*i<=100000; j++)
{
a[i*j]=0;
}
} /*素数定义知 不会有多余的因子 反过来 2个数的
乘积 一定不是素数标记成0 下文有图感谢他人的分析*/
cin>>n>>m;
for(int i=n; i<=m; i++)
if(a[i])
cout<<i<<endl;
return 0;
}