m0_63879042 2022-10-14 22:08 采纳率: 0%
浏览 55

解决问题,代码运算成功了但是不通过不知道为什么

集合的前N个元素:编一个程序,按递增次序生成集合M的最小的N个数,M的定义如下:

(1)数1属于M;

(2)如果X属于M,则Y=2x+1和Z=3x+1也属于M;

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10000

int main(){
int n,max,Y[MAXSIZE],Z[MAXSIZE],num[MAXSIZE],i=0,j=0,h,a,term;
scanf("%d",&n);
num[0]=1;
while(i<=n){
Y[i]=2*num[i]+1;
Z[i]=3*num[i]+1;
num[++j]=Y[i];
num[++j]=Z[i];
i++;
}
for(a=0;a<=j;a++){
for(h=a;h<=j;h++){
if(num[a]>num[h]){
term=num[a];
num[a]=num[h];
num[h]=term;
}
}
}
for(h=0;h<=j;h++){
if(num[h]==num[h+1]){
for(a=h+1;a<=j;a++){
num[a]=num[a+1];
}
}
}
for(h=0;h<n;h++){
printf("%d ",num[h]);
}
return 0;

}

不知道哪里出了问题显示错误

img

  • 写回答

1条回答 默认 最新

  • honestman_ 2022-10-15 12:58
    关注
    #include<cstdio>
    using namespace std;
    
    const int N = 20002;
    int a[N],b[N]; 
    //a是2x+1,b是3x+1
    int n,fa=1,fb=1,ra=0,rb=0,x=1,h=1;
    //x为最开始的一个数,h做统计
    
    int main() {
        scanf("%d",n);
        while(h<=n) {
            printf("N=%d",x);
            a[++ra]=x*2+1;
            b[++rb]=x*3+1;
            if(a[fa]<b[fb]) x=a[fa++];
            else if(a[fa]>b[fb]) x=b[fb++];
            else x=a[fa++],fb++;
            h++;
        }
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 修改了问题 10月14日
  • 修改了问题 10月14日
  • 修改了问题 10月14日
  • 创建了问题 10月14日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件