You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供基于序列ID计算循环序列对应数值的数学公式及C++实现

解决方案

数学公式

这个序列的循环周期是4,核心是通过ID对4取余来匹配对应数值:

  • 计算 r = ID % 4
    • 当 r = 1,对应数值为2
    • 当 r = 2,对应数值为4
    • 当 r = 3,对应数值为8
    • 当 r = 0(即ID是4的整数倍),对应数值为6

更简洁的映射表达式:
数值 = [2, 4, 8, 6][(ID - 1) % 4]
(注:(ID-1) 是将1-based的ID转为0-based数组下标,无需单独处理余数为0的特殊情况)

C++实现代码

方式一:数组映射(简洁高效)

#include <iostream>
using namespace std;

int main() {
    int ID;
    cout << "输入ID: ";
    cin >> ID;
    
    const int sequence[] = {2, 4, 8, 6};
    int index = (ID - 1) % 4;
    cout << "对应数值: " << sequence[index] << endl;
    
    return 0;
}

方式二:条件判断(直观易懂)

#include <iostream>
using namespace std;

int main() {
    int ID;
    cout << "输入ID: ";
    cin >> ID;
    
    int remainder = ID % 4;
    int result;
    
    switch(remainder) {
        case 1: result = 2; break;
        case 2: result = 4; break;
        case 3: result = 8; break;
        default: result = 6; break; // 处理余数为0的情况
    }
    
    cout << "对应数值: " << result << endl;
    
    return 0;
}

错误原因说明

你之前用ID % 10判断是错误的,因为序列的循环周期是4而非10。比如ID1(末位1)对应2,但ID11(末位1)的11%4=3,对应数值8,这就是末位相同的ID对应数值不同的原因。

内容的提问来源于stack exchange,提问作者qwerty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:20:10