给你一个正整数 N。打印一个长度为 (N+1)的字符串s,其定义如下。
对于每个 i = 0, 1, 2, ..., N
如果 N 的除数 j 在 1 和 9 之间(包括 1 和 9),且 i 是 N / j 的倍数,则 si 是与最小的 j 相对应的数字。(因此 si 是1
、2
、...、9
中的一个);
如果不存在这样的 j,那么 si 就是-
。
![](https://profile-avatar.csdnimg.cn/697edc3da3744d0abf4c17e288920aa4_weixin_64589886.jpg!4)
给你一个正整数 N。打印一个长度为 (N+1)的字符串s,其定义如下。 对于每个 i = 0, 1, 2, ..., N
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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; }
解决 1无用 1
悬赏问题
- ¥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三个简单题 不用太复杂