全RE但不是数组越界
查看原帖
全RE但不是数组越界
1257833
RiGuang楼主2024/12/7 19:57

为什么我用递归写就RE(Runtime Error. Received signal 11: Segmentation fault with invalid memory reference.)但是用while就全AC了?如果是递归溢出的话也应该是MLE。

RE源码(主要部分):

#define B long long
B dg(B d){
    B s=0;
    while (d>0){
        s+=d%10;
        d/=10;
    }
    if(s>9)s=dg(s);
    else {
    	return s;
	}
}

void ex(){
        	g*=7;//g为奇数位上的数
        	s+=dg(g);
}

AC源码(主要部分):

#define B long long
B dg(B d){
    B s=0;
    while (d>0){
        s+=d%10;
        d/=10;
    }
    return s;
}

void ex(){
        	g*=7;//g为奇数位上的数
        	while(g>9){
        		g=dg(g);
			}
}

另外RE的那个g*=7;如果改为g*=5(5以下都一样)就只会WA而不是RE。有经验的大佬可以帮忙看一下问题出在哪里。

2024/12/7 19:57
加载中...