枚举问题集

cs 复制代码
#include <stdio.h>

int main() {
    int n = 2021;
    long long ans = 0;
    for (int x = 1; x <= n; x++) {
        ans += n / x;
    }
    printf("%lld\n", ans);
    return 0;
}
cs 复制代码
#include <stdio.h>

// 计算正整数n的正约数个数
long long countDivisors(long long n) {
    long long count = 1; // 最终约数个数,初始为1(乘法单位元)
    
    // 分解质因数2
    int exponent = 0;
    while (n % 2 == 0) {
        exponent++;
        n /= 2;
    }
    count *= (exponent + 1); // 2的指数+1
    
    // 分解奇数质因数(从3开始,步长2)
    for (long long i = 3; i * i <= n; i += 2) {
        exponent = 0;
        while (n % i == 0) {
            exponent++;
            n /= i;
        }
        count *= (exponent + 1); // 当前质因数的指数+1
    }
    
    // 若剩余n>1,说明是最后一个质因数
    if (n > 1) {
        count *= 2; // 指数为1,1+1=2
    }
    
    return count;
}

int main() {
    long long num = 12000000; // 目标数
    long long result = countDivisors(num);
    printf("12000000的正约数个数为:%lld\n", result);
    return 0;
}
cs 复制代码
#include <stdio.h>

int main() {
    int cnt[10]; // 存储0~9的卡片数量
    // 初始化:每个数字2021张
    for (int i = 0; i < 10; i++) {
        cnt[i] = 2021;
    }
    
    int n = 1;
    while (1) {
        int tmp = n;
        // 复制当前卡片状态,避免提前修改导致错误
        int tmp_cnt[10];
        for (int i = 0; i < 10; i++) {
            tmp_cnt[i] = cnt[i];
        }
        
        // 逐位消耗卡片
        while (tmp > 0) {
            int d = tmp % 10;
            tmp_cnt[d]--;
            if (tmp_cnt[d] < 0) {
                // 卡片不足,输出上一个数
                printf("%d\n", n - 1);
                return 0;
            }
            tmp /= 10;
        }
        
        // 卡片足够,更新真实卡片数量
        for (int i = 0; i < 10; i++) {
            cnt[i] = tmp_cnt[i];
        }
        n++;
    }
    return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>

int gcd(int a,int b)
{
  while(b!=0)
  {
    int t=b;
    b=a%b;
    a=t;
  }
  return a;
}

int main(int argc, char *argv[])
{
  int cnt=0;
  for(int i=1;i<=2020;i++)
  {
    for(int j=1;j<=2020;j++)
    {
      if(gcd(i,j)==1) cnt++;
    }
  }
  printf("%d",cnt);
  return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  int x=0;//记录三角数
  for(int i=1;;i++){//查找三角数
    x+=i;
    if(x>20220514){//大于20220514,验证是否为回文数
      int b=x;
      int a=0;
      while(b!=0){//将三角数倒置放入a中储存
        a=a*10+b%10;
        b/=10;
      }
      if(a==x){//比较a是否等于x,相等说明x为三角回文数
        printf("%d",x);
        break;
      }
      a=0;//不是,重置a进入下一次验证
    }
  }
  return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  long long ans=0;
  for(long long i=1;i<1000000007;i++)
  {
    if((i*2021+8)%1000000007==0)
    {
      ans=i;
      break;
    }
  }
  printf("%lld",ans);
  return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  long long x;
  x=256*255*254/3+256*255/2;
  printf("%lld",x);
  return 0;
}
相关推荐
卷福同学8 小时前
不用服务器,不用配环境,我10分钟上线了一个AI Agent
人工智能·后端·算法
码兄科技10 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
折哥的程序人生 · 物流技术专研10 小时前
第8篇:六大设计原则在工厂模式中的体现
java·设计模式·设计原则·工厂模式·编程进阶·扩充系列
问君能有几多愁~10 小时前
C++ 数据结构复习笔记
数据结构·c++·笔记
至乐活着11 小时前
深入解析跳表SkipList:原理、实现与性能优化实战
数据结构·算法·跳表·skiplist·java实现
小明bishe1811 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
r_oo_ki_e_11 小时前
Java Map 集合学习笔记
java·笔记·学习
SL-staff11 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
Jerry11 小时前
LeetCode 383. 赎金信
算法
ai产品老杨12 小时前
H264 H265视频分析常见问题和排查清单
人工智能·算法·音视频