【问题标题】:Decrypt sequence of numbers to characters将数字序列解密为字符
【发布时间】:2022-11-16 04:08:14
【问题描述】:

假设每个字符都按以下规则解密: 将 ascii 值加 2 并将其取反。示例:a-99 b-001 c-101 m-111 该程序需要将数字序列解密为原始字母:11199 = ma

请记住,我不能使用数组,只能使用 stdlib 和 stdio

将近4个小时的尝试

【问题讨论】:

  • “将近 4 个小时的尝试”——请展示你想出的代码并解释这段代码的问题所在
  • 您是否期望我们会为您编写代码?
  • 欢迎Stack Overflow,为了让我们帮助您,请分享您尝试过的代码。阅读 minimal reproducible example,它显示了您在尝试编写代码时遇到的实际技术问题。此外,在 Stack Overflow 上寻求一般家庭作业帮助是不受欢迎的,而我们可以在它的特定方面帮助您。

标签: c


【解决方案1】:

4个小时??认真的伙计?

我花了不到 10 分钟:

#include <stdio.h>

int main(void) {
    char* input = "601301011011311";
    // "hello" is 104(h), 101(e), 108(l), 108(l), 111(o)
    
    while(*input)
    {
        int code = 0;
        int xp = 1;

        // Assume that all characters are between `a` and `z`
        while('a'+2 >= code && code <= 'z'+2 )
        {
            code += xp * (*input-'0');
            xp *= 10;
            input++;
        }
        putchar(code-2);
    }
    putchar('
');
    
    return 0;
}

输出

Success #stdin #stdout 0s 5432KB
hello

IDEOne Link

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多