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

一些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);
}

http://www.xdnf.cn/news/530.html

相关文章:

  • 【GCC】gcc编译学习
  • 指令与权限
  • RK | rk3568开发与学习
  • PrintWriter 类详解
  • liunx日志问题
  • CUDA Tools 常用命令总结与记录 (需要细化)
  • 路由引入、路由过滤及路由策略
  • C++ 用哈希表封装unordered_set/unordered_map
  • Linux进程概念
  • Day95 | 灵神 | 二叉树 二叉树的垂序遍历
  • U-Boot(Universal Bootloader)简介
  • 不带无线网卡的Linux开发板上网方法
  • 英文论文写作:常用AI工具与【新秀笔目鱼】
  • JAVA的泛型
  • jQuery — 动画和事件
  • SpringBoot学习(过滤器Filter。拦截器Interceptor。全局异常捕获处理器GlobalExceptionHandler)(详细使用教程)
  • 哲学家就餐问题(避免死锁)
  • BootStrap:进阶使用(其二)
  • 计算机网络 实验五 RIP的配置与应用
  • 序列化和反序列化
  • 第9期:文本条件生成(CLIP + Diffusion)详解
  • 基于 Python 的自然语言处理系列(82):Transformer Reinforcement Learning
  • Alan AI - 面向Web的生成式AI SDK
  • 基于C语言实现文件读取
  • Linux 第五讲 --- 权限管理
  • 6.常用控件-QWidget|windowTitle|windowIcon|qrc机制|windowOpacity|cursor(C++)
  • Amlogic S905L3 系列对比:L3A、L3B 与 L3AB 深度解析
  • Unity之如何实现RenderStreaming视频推流
  • 大学英语四级选词填空阅读题和段落匹配解析
  • 【Hot100】54. 螺旋矩阵