temp

作者: 余生筑 | 来源:发表于2019-01-15 17:17 被阅读25次
  • memset函数
#include<cstring>

int a[100];
memset(a,0,sizeof(a));

vector

  • 错误写法
vector<double> cou_aver;
cou_aver[j]+=score;
  • sort函数
sort(pros.begin(),pros.end(),cmp);

  • 每月天数
int each[12]= {31,28,31,30,31,30,30,31,30,31,30,31};
  • 判断闰年
bool IfRun(int n)
{
    if(n%100==0)
    {
        if(n%400==0)
            return true;
    }
    else
    {
        if(n%4==0)
            return true;
    }
    return false;
}
  • 判断素数
bool isPrime(int n)
{
    if(n==1) //1不是素数
    return false;
    int sqr=(int)sqrt(1.0*n);
    for(int i=2;i<=sqr;i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}
  • 获取100以内素数,存于数组prime
#include <iostream>
#include<cstring>
using namespace std;
const int maxn=101;
int prime[maxn],pNum=0;
bool p[maxn];
void Find_Prime()
{
    for(int i=2;i<maxn;i++)
    {
        if(p[i]==false)
        {
            prime[pNum++]=i;
            for(int j=i+i;j<maxn;j+=i)
            {
                p[j]=true;
            }
        }
    }
}
int main()
{
    memset(p,false,sizeof(p));
    Find_Prime();
    for(int i=0;i<pNum;i++)
    {
        printf("%d ",prime[i]);
        //2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    }
    return 0;
}
  • 将n进行质因数分解,结果存于fac数组
//详见算法笔记P168
#include <iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=100010;
int prime[maxn],pNum=0;
bool p[maxn];
bool isPrime(int n)
{
    if(n==1)
        return false;
    int sqr=(int)sqrt(1.0*n);
    for(int i=2; i<=sqr; i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}
void Find_Prime()
{
    for(int i=2; i<maxn; i++)
    {
        if(p[i]==false)
        {
            prime[pNum++]=i;
            for(int j=i+i; j<maxn; j+=i)
            {
                p[j]=true;
            }
        }
    }
}
struct factor
{
    int x;
    int cnt;
} fac[10];
int fNum=0;
void getFac(int n)
{
    int sqr=(int)sqrt(1.0*n);
    for(int i=0; i<pNum&&prime[i]<=sqr; i++)
    {
        if(n%prime[i]==0)
        {
            fac[fNum].x=prime[i];
            fac[fNum].cnt=0;
            while(n%prime[i]==0)
            {
                fac[fNum].cnt++;
                n/=prime[i];
            }
            fNum++;
        }
        if(n==1)
            break;
    }
    if(n!=1)
    {
        fac[fNum].x=n;
        fac[fNum].cnt=1;
        fNum++;
    }
}
int main()
{
    memset(p,false,sizeof(p));
    Find_Prime();
    getFac(180);
    cout<<"对于180"<<endl;
    for(int i=0; i<fNum;i++)
    {
       cout<<"质因子"<<fac[i].x<<"个数为"<<fac[i].cnt<<endl;
    }
    return 0;
}
/*
对于180
质因子2个数为2
质因子3个数为2
质因子5个数为1
*/
  • 找一个数的约数,存于divs数组
#include<iostream>
#include<cstring>
using namespace std;
int divs[100],dnum=0;
void getDiv(int n)
{
    memset(divs,0,100);
    for(int i=1; i<=n/2; i++)
    {
        if(n%i==0)
        {
            divs[dnum]=i;
            dnum++;
        }
    }
}
int main()
{
    getDiv(220);
    cout<<220<<"的约数为";
    for(int j=0; j<dnum; j++)
    {
        cout<<divs[j]<<" ";
    }
    return 0;
}
//220的约数为1 2 4 5 10 11 20 22 44 55 110
//详见算法笔记P185
#include<iostream>
#include<cstring>
using namespace std;
long long C(long long n,long long m)
{
    long long ans=1;
    for(long long i=1;i<=m;i++)
    {
        ans=ans*(n-m+i)/i;
    }
    return ans;
}
int main()
{
    cout<<C(3,2)<<endl;//3
    return 0;
}
  • cmp函数
bool cmp(cal a,cal b)
{
    if(abs(a.val)!=abs(b.val))
        return abs(a.val)>abs(b.val);
    else if(a.row!=b.row)
        return a.row>b.row;
    else
        return a.col>b.col;
  • C的合法标识符
1.首字母不能以数字开头
2.在字符串中,只能有字母,数字,下划线
  • getline格式
while(cin>>n)
    {
        char c=getchar();;
       for(int i=0;i<n;i++)
       {
           string str;
          getline(cin,str);
          cout<<str<<endl;
       }
    }
/*3
wqe rtr
sd ioio
sdssd*/
  • 关于ASCII码

字母ASCII码

A-Z:65~90
a-z:97~122
cout<<('a'-96)*100;//100
cout<<'b'-'a'+'A'//'B'
cout<<'a'-'A'//32
cout<<'A'+32//97
cout<<char('A'+32)//a

汉字ASCII码

1.小于0
2.占两个字节//一个字母占1个字节
    cin>>str;
    for(int i=0;i<str.length();i++)
    {
        cout<<str[i]-'0'<<" ";
    }
/*输入:东风破
输出:-98 -94 -117 -136 -113 -134
*/

str[i]>=65

string str;
cin>>str;
for(int i=0;i<str.length();i++)
    {
        if(str[i]>=97&&str[i]<=122)
            cout<<"s";
        if(str[i]>=65&&str[i]<=97)
            cout<<"b";
    }
    return 0
/*输入:abcdeABCDE
输出:sssssbbbbb
*/
  • 输入字符串

字符串带空格

 string str;
 while(getline(cin,str))
 {
     cout<<str<<endl;
 }
/*
输入:sdsd dsds
输出:sdsd dsds
*/
    cin>>n;
    char c=getchar();
    for(int i=0; i<n; i++)
    {
        string str;
        getline(cin,str);
        cout<<str<<endl;
    }
/*
输入:2
sdsd dsds
yu io io
输出:
sdsd dsds
yu io io
*/

字符串不带空格

    cin>>n;
    for(int i=0; i<n; i++)
    {
        string str;
        cin>>str;
        cout<<str<<endl;
    }
/*
输入:2
sdsddsds
yuioio
输出:
sdsddsds
yuioio
*/
  • 统计单词个数(输入数据只有一行)
#include<iostream>
#include<vector>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
    string word;
    vector<string> words;
    while(cin>>word)
    {
        words.push_back(word);
        char c=getchar();//利用getchar()判断换行
        if(c=='\n')
            break;
    }
    int size=words.size();
    cout<<size<<endl;
    return 0;
}
/*you are my friend
  4*/
  • 统计单词个数(输入数据有多行,遇到#终止)
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    string str;
    vector<string> words;
    while(getline(cin,str))
    {
        if(str[0]=='#')
            return 0;
        int count=0;
        bool new_w=false,still=false;
        for(int i=0; i<str.length(); i++)
        {
            if(str[i]!=' '&&new_w==false&&still==false)
            {
                count++;
                new_w=true;
                still=true;
            }
            else
            {
                if(str[i]!=' ')
                {
                    still=true;
                }
                else
                {
                    still=false;
                }
                new_w=false;
            }
        }
        cout<<count<<endl;
    }
    return 0;
}
/*输入:             you              are     my  friend               */
/*输出:4              
  • if(b)
int b=0;
   if(b)
    cout<<"b is not zero"<<endl;//输出:b is not zero"
  • 最大公约数
//辗转相除法
int gcd(int m,int n)
{
    if(!n)
        return m;
    else
        return gcd(n,m%n);
}
  • 最小公倍数(基于gcd)
int lcm(int m,int n)
{ 
    int res=gcd(m,n);
    return m/res*n;
}
10^9以内,用int型
10^10及以上,用long long型

数论

  • 计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。
  • Lagrange 四平方定理: 任何一个正整数都可以表示成不超过四个整数的平方之和。
  • 质因子结论:对于一个正整数n来说,如果它存在[2,n]范围内的质因子,
    要么这些质因子全部小于等于sqrt(n),要么只存在一个大于sqrt(n)的质因子,而其余质因子全部小于等于sqrt(n)。

几何

  • 三角形ABC的面积
    假设向量AB=(bx,by);向量AC=(cx,cy);则S=(bxcy-cxby)/2;
    参考资料
多边形可划分为多个三角形

S=s1+s2+s3+...+sn;其中si计算方法同上

  • 按位右移运算符(>>)
将数据除以2^n(2的n次方)
    int sum=48>>3;
    cout <<sum<< endl;//6
  • 按位左移运算符(<<)
将数据乘以2^n(2的n次方)
    int sum=3<<3;
    cout <<sum<< endl;//24

while

 while(n>0)
    {
        while(num>0)
        {
            num--;
            n--;
        }
    }
    cout<<n<<endl;//-7
  • 输出从数组num中从A到B的数;
    每 10 个数字占 1 行,其间以空格分隔;
    但行末不得有多余空格。
/*
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
*/
for(int i=A-1;i<B;i++)
    {
    count++;
    count%=10;
    if(count!=0)
    {
        if(count!=1)
            cout<<" ";
        cout<<num[i];
    }
    else
        cout<<" "<<num[i]<<endl;
    }

相关文章

  • java自增与自减

    int a = 0; a++; 内部执行 int temp = a; temp = temp + 1; retur...

  • JS中的类型转换

    一、Number( temp ) -> 把temp转化为数字 1. temp为数字时: 把temp原样输出2. t...

  • temp

    https://www.bilibili.com/video/av24727309/ https://ke.qq....

  • temp

    简介: 开盘的是A小区、B小区和C小区。A、B是同一开发商,C是一个开发商。我想买的是A、B小区的100平方的户型...

  • Temp

    http://pan.baidu.com/s/1dDjQSUH http://youtu.be/oedWcKjG_b0

  • temp

  • temp

    http://www.ruankao.org.cn/jsjnew/cms/workPlan/detail/news...

  • temp

    咨询 netservice表格 list create delete update select 案例 work详...

  • temp

    http://steamtom.tunnel.mobi:8080/steam_weixin/wx.do $row ...

  • TEMP

    Blockchain References BlockChain: A Survey on Enabling Te...

网友评论

      本文标题:temp

      本文链接:https://www.haomeiwen.com/subject/ajyydqtx.html