祺580 2023-12-12 11:29 采纳率: 0%
浏览 17

给你一个正整数 N。打印一个长度为 (N+1)的字符串s,其定义如下。 对于每个 i = 0, 1, 2, ..., N

给你一个正整数 N。打印一个长度为 (N+1)的字符串s,其定义如下。
对于每个 i = 0, 1, 2, ..., N
如果 N 的除数 j 在 1 和 9 之间(包括 1 和 9),且 i 是 N / j 的倍数,则 si 是与最小的 j 相对应的数字。(因此 si 是12、...、9中的一个);
如果不存在这样的 j,那么 si 就是-

  • 写回答

1条回答 默认 最新

  • xiaobuding_QAQ 2023-12-12 15:56
    关注
    
    #include <stdio.h>
    #include <stdlib.h>
    
    char* generateString(int N) {
        char* s = (char*)malloc((N+1) * sizeof(char)); // 分配长度为 N+1 的字符数组,并初始化为 '-'
        
        for (int i = 0; i <= N; i++) {
            int min_j = 10; // 初始化最小的 j 为 10
            
            for (int j = 1; j <= 9; j++) {
                if (N % j == 0 && i % (N / j) == 0) { // 判断 j 是否是 N 的除数,并且 i 是否是 N/j 的倍数
                    if (j < min_j) {
                        min_j = j; // 更新最小的 j
                    }
                }
            }
            
            if (min_j != 10) {
                s[i] = '0' + min_j; // 将最小的 j 转换为字符,并赋值给 s[i]
            } else {
                s[i] = '-'; // 如果不存在符合条件的 j,则将 s[i] 设为 '-'
            }
        }
        
        s[N+1] = '\0'; // 添加字符串结束符
        
        return s;
    }
    
    int main() {
        int N;
        printf("Enter a positive integer N: ");
        scanf("%d", &N);
        
        char* s = generateString(N);
        
        printf("Generated string: %s\n", s);
        
        free(s); // 释放动态分配的内存
        
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月12日

悬赏问题

  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂