枚举问题集

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;
}
相关推荐
北漂人Java12 分钟前
SpringAI-2.Spring AI整合本地模型和云端大模型
java·spring
从负无穷开始的三次元代码生活13 分钟前
算法零碎灵感点分享
算法
迹象Kimizhou_blog14 分钟前
国内 IntelliJ IDEA 集成Claude code,调用deepSeek模型实现agent
java·ide·intellij-idea·deepseek·claude code
梓䈑18 分钟前
【算法题攻略】快速排序 和 归并排序
数据结构·c++·排序算法
染指111019 分钟前
9.LangChain框架(实现RAG)
数据库·人工智能·算法·机器学习·ai·大模型
大数据三康25 分钟前
在spyder进行的遗传算法练习
开发语言·python·算法
百珏25 分钟前
海量人群包存储优化:基于 RoaringBitmap 交换格式与 Redis 分片 Bitmap 的实践
java·后端·架构
风味蘑菇干25 分钟前
IO流(字节流)
java
Gene_202229 分钟前
轮式底盘的微分平坦
算法
weixin_408318041 小时前
教育行业直播系统搭建指南
java·大数据·数据库