当前位置: 首页 > news >正文

一些C语言常用函数(后续会继续更新)

1.求质数
bool isprime(int num)
{
    if(num < 2) return false;
    for(int j = 2;j <= sqrt(num);j++)
    {
        if(num % j == 0)
        {
            return false;
        }
    }
    return true;
}

2.快排
void qsort(int l,int r)
{
    int i,j,mid;
    i = l;
    j = r;
    mid = a[(l + r)/2];
    do
    {
        while(a[j] > mid){
            j--;
        }
        while(a[i] < mid){
            i++;
        }
        if(i <= j)
        {
            swap(a[i],a[j]);
            i++;
            j--;
        }
    }while(i <= j);
    if(m <= j)
    {
        qsort(l,j);    
    }    
    else if(i <= m)
    {
        qsort(i,r);
    }
    else
    {
        printf("%d",a[m+1]);
    }

3.求最大公因数(辗转相除法)
int gcd(int a,int b){
    return b == 0 ? a : gcd(b,a % b); 
}
4.日期模拟
#include <bits/stdc++.h>
#define MX 100005
using namespace std;
int b[] = {13,1,2,3,5,4,4,2,2,2};
int main() {
    int cnt = 0;
    for(int i = 2000; i <= 2024; i++) {
        int cnt1 = 0,ant1 = i;
        while(ant1 != 0) {
            cnt1 = cnt1 + b[ant1 % 10];
            ant1 = ant1 / 10;
        }
        for(int j = 1; j <= 12; j++) {
            int cnt2 = 0,ant2 = j;
            if(ant2 / 10 != 0) {
                while(ant2 != 0) {
                    cnt2 = cnt2 + b[ant2 % 10];
                    ant2 = ant2 / 10;
                }
            } else {
                cnt2 = cnt2 + 13 + b[ant2];
            }
            for(int k = 1; k <= 31; k++) {
                if(i == 2024 && j == 4 && k == 14) goto end;
                if(j == 1 | j == 3 | j == 5 | j == 7 | j == 8 | j == 10 | j == 12);
                else if(j == 2) {
                    if((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {
                        if(k > 29) break;
                    } else {
                        if(k > 28) break;
                    }
                } else {
                    if(k > 30) break;
                }
                int cnt3 = 0,ant3 = k;
                if(ant3 / 10 != 0) {
                    while(ant3 != 0) {
                        cnt3 = cnt3 + b[ant3 % 10];
                        ant3 = ant3 / 10;
                    }
                } 
                else {
                    cnt3 = cnt3 + 13 + b[ant3];
                }
                if(cnt1 + cnt2 + cnt3 > 50) { 
                    cnt++;
                }
            }
            }
        }
        end:
        cout<<cnt<<endl;
        return 0;
    }

5.超大数定义和输出
typedef __int128 ll;
void print128(ll x){
    if(x > 9) print128(x / 10);
    putchar(x % 10 + '0');
}
6.二叉树深度搜索
void dfs(int root,int step){
    if(root == 0) return;
    mx = max(mx,step);
    dfs(a[root].l,step+1);
    dfs(a[root].r,step+1);
}

相关文章:

  • 力扣刷题Day 21:两数之和(1)
  • day28 学习笔记
  • 面试题之如何设计一个秒杀系统?
  • LRU Java实现
  • 移动自动化测试-appium
  • jQuery — 动画和事件
  • kimi+deepseek制作PPT
  • 【java实现+4种变体完整例子】排序算法中【桶排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • spring-batch批处理框架(2)
  • 已注册商标如何防止被不使用撤销!
  • UDS中功能寻址可以请求多帧数据嘛?当ECU响应首帧后,诊断仪是通过物理寻址发送流控帧嘛?
  • 如何给云开发生成的智能体增加权限判断
  • 【排队论】Probabilistic Forecasts of Bike-Sharing Systems for Journey Planning
  • NestJS——使用TypeORM连接MySQL数据库(Docker拉取镜像、多环境适配)
  • 文献×材料 | 基于ANSYS的刹车片环保材料分析研究
  • CRC实战宝典:从原理到代码,全面攻克循环冗余校验
  • Transformer 进阶:拥抱预训练模型,迈向实际应用
  • DDPM(diffusion)原理
  • opencv练习
  • 16、堆基础知识点和priority_queue的模拟实现
  • 商务部:支持外籍医生开设诊所,优化罕见病药品进口抽检模式
  • 国家开发银行原副行长李吉平一审获刑14年
  • 今年以来金价涨幅超26%,未来会继续上涨吗?
  • 青创上海—2025浦东徒步行活动举行,“青年草坪创新创业湃对”正式亮相
  • 亲诚惠容行大道,命运与共开新篇——中共中央政治局委员、外交部长王毅谈习近平主席对越南、马来西亚、柬埔寨进行国事访问
  • 一图看懂|特朗普政府VS美国顶尖高校:这场风暴如何刮起?