「找规律」koishi的数学题

koishi的数学题

题目链接:koishi的数学题

题目大意

给你一个公式,让你求结果(详细看题目链接里面)

题目题解

如果出这种题,我就死定了(真的

看了一下,不会 那就打表。打了半天表没发现什么,因为\(n\)也在变,每次答案都不一样,然后我换了个思路,对于每一位上的数针对\(n\)不同又是怎么变得呢?

于是我对于每一位又打了个表 (x代表没有数

1 -> 0 1 2 3 4 5 6 7 8 9

2 -> x 2 4 6 8 10 12 14 16

3 -> x x 1 4 7 10 13 16 19 22

4 -> x x x 1 5 9 13 17 21 25

5 -> x x x x 4 9 14 19 24 29

6 -> x x x x x 3 9 15 21 27

7 -> x x x x x x 8 15 22 29

8 -> x x x x x x x 8 16 24

9 -> x x x x x x x x 12 21

10 -> x x x x x x x x x 13

然后发现对于每一位而言,第一位不知道怎么算出来的,然后接下来每一位都是由前一位加\(i\)得到的

那么很明显了,我们只要得到第一位就能通过O(1)的式子转化到最终答案,但显然 这个第一位不是那么好求,本来想打表的,但是跑了很长时间都没有跑出来,然后就想了其他的办法(看题解)

最终发现第一个题解的办法有点像这个,看了一下 哦!原来可以这样

对于每一个固定的\(i\)\(x\)递增时的\(x - (xMODi)\) ,这就是每\(i\)项增加\(i\)的一个数列,因为由上面我们打表可得,每一项都是由前一项得到,我们理所应当的就能想到递推式

代码如下 (这种题 quq我还是少写吧)

//#define fre yes

#include <cstdio>

const int N = 1000005;
long long n, ans, tag[N];

int main() {
    static int n;
    scanf("%lld", &n);
    for (int i = 2; i <= n; i++) {
        for (int j = i; j <= n; j += i) {
            tag[j] += i;
        }
    }

    for (int i = 1; i <= n; i++) {
        ans += n - tag[i] - 1;
        printf("%lld ", ans);
    } return 0;
}

转载于:https://www.cnblogs.com/Nicoppa/p/11512291.html

### Koishi Framework Echo 功能详解 Koishi 是一款基于 Node.js 的聊天机器人框架,支持多种消息平台。对于希望利用其 `echo` 功能来实现简单回复机制的开发者来说,理解如何配置和调用此功能至关重要。 #### 使用Echo插件发送消息 为了使 Koishi 实现回显(即重复用户输入),可以加载内置的 `echo` 插件。这允许创建一个简单的命令处理器,在接收到特定指令时返回相同的文本给对话者[^4]。 ```javascript const { createBot, loadPlugin } = require('koishi'); const echo = require('@koishijs/plugin-echo'); // 创建一个新的bot实例并应用echo插件 createBot({ platform: 'onebot', endpoint: '/path/to/endpoint', // 替换成实际端点路径 }).use(loadPlugin(echo)); ``` 上述代码片段展示了怎样引入必要的模块并通过 `.use()` 方法激活插件。一旦完成这些设置,每当触发条件满足时——通常是当某条消息匹配预定义模式或关键词时——就会执行相应的响应逻辑[^1]。 #### 自定义Echo行为 除了默认的行为外,还可以自定义 `echo` 插件的工作方式。比如改变触发词、调整输出格式或是增加额外处理步骤等。下面是一个例子: ```javascript bot.command('repeat <text>', '复读机') .action(({ session }, text) => { return `${session.username}说:${text}`; }); ``` 这里定义了一个名为 `repeat` 的新命令,它接受任意长度的文字参数 `<text>` 并将其作为回应的一部分发出。这种灵活性使得可以根据具体需求轻松扩展基本的回显功能[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值