编程中琐碎的小知识点-持续更新

    科技2022-08-26  107

    文章目录

    1. 在math.h或cmath头文件中有四舍五入有关的函数:2. set.insert(),检测插入是否成功3. 最大公约数与最小公倍数4. 打开文件:5. set容器中的lower_bound()与upper_bound();6. 反转数组部分元素:

    1. 在math.h或cmath头文件中有四舍五入有关的函数:

    round函数可以完成四舍五入 round((double)n/2)

    2. set.insert(),检测插入是否成功

    成员 pair::second 是一个 bool 值,如果新的元素被插入,返回 true,如果等值元素已经存在(即无新元素插入),则返回 false。

    看一道例题:找从n年开始,m个数字不一样的年份;

    #include<bits/stdc++.h> using namespace std; int main() { set<int>s; int n,m; cin>>n>>m; int countt=0; for(int i=n;i<10000;i++) { int k=0; int t=i; s.clear();//一定记住清空 for(int j=1;j<=4;j++) { if(s.insert(t%10).second)//判断能插入的个数,即不同的个数; { k++; } t=t/10; } if(k==m)//说明找到了 { break; } countt++; } cout<<countt<<" "<<setw(4)<<setfill('0')<<countt+n<<endl; return 0; }

    3. 最大公约数与最小公倍数

    int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); } int lcm(int a,int b){//最小公倍数 return a*b/gcd(a,b); } int main() { int n,m; while(cin>>n>>m) { cout<<gcd(n,m)<<endl; cout<<lcm(n,m)<<endl; } return 0; }

    4. 打开文件:

    freopen(“tabs.in”,“r”,stdin);

    5. set容器中的lower_bound()与upper_bound();

    lower_bound();返回容器中第一个大于等于该元素的迭代地址 upper_bound();返回容器中第一个小于等于该元素的迭代地址 例题: 列车调度

    6. 反转数组部分元素:

    reverse(a+l,a+r); 下标从l到r;

    Processed: 0.015, SQL: 9