NEFU 暴力枚举

丑数(打表)

公因数只有2 3 5 7的数

#include <bits/stdc++.h>
using namespace std;
int min4(int a,int b,int c,int d);
int main()
{
    int x[6000];
    int i2,i3,i5,i7;
    x[1]=i2=i3=i5=i7=1;
    for(int i=2; i<5900; i++)
    {
        x[i]=min4(x[i2]*2,x[i3]*3,x[i5]*5,x[i7]*7);
        if(x[i]%2==0)//不用else if的原因是避免重复,比如当枚举到6时需要2和3的下标同时++
            i2++;
        if(x[i]%3==0)
            i3++;
        if(x[i]%5==0)
            i5++;
        if(x[i]%7==0)
            i7++;
    }
    int n;
    while(cin>>n)
    {
        if(n==0)
            break;
        else
            printf("%d\n",x[n]);
    }
    return 0;
}
int min4(int a,int b,int c,int d)
{
    return min(min(a,b),min(c,d));
}

便利所有的数,因子只有2 3 5 7

for(int i=2; j<10; i++)
    {
        a=i;
        while(a%2==0)//能被2 3 5 7反复除完剩1即可
            a=a/2;
        while(a%3==0)
            a=a/3;
        while(a%5==0)
            a=a/5;
        while(a%7==0)
            a=a/7;
        if(a==1)
            x[j]=i;
    }

奶牛碑文

统计类似于2019 cow在字符串里面出现的个数

#include <bits/stdc++.h>

using namespace std;
char x[100020];
long long int n,c,co,cow;
int main()
{
    scanf("%lld%s",&n,x);
    for(int i=0; i<n; i++)
    {
        if(x[i]=='C')c++;//将c的个数统计到co,再将co个数统计与cow
        if(x[i]=='O')co=co+c;
        if(x[i]=='W')cow=cow+co;
    }
    printf("%lld",cow);
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值