60分C语言函数判断时的问题
查看原帖
60分C语言函数判断时的问题
1178500
M0XU楼主2024/2/24 21:25

红的几个点都是read Y,expected N.

我的思路是拆成数组判断,如果末位数是奇数一定要删除,如果是偶数2或6就在前面找一个奇数,找不到就删除该位。看过了题解,但还是不明白,跪求大佬指点。

int judge(int* nums,int numsSize){
	if(numsSize==1){//一位数 
		if(nums[0]%4!=0) return 0;
		else return 1;
	}
	if(nums[0]%2!=0) return judge(&nums[1],numsSize-1);//末位是奇数,一定删除 
	else{
		if(nums[0]==0||nums[0]==4||nums[0]==8) return 1;
		else{
			for(int i=1;i<numsSize;i++){//末位是2,6,在前面找一个奇数,eg 12,56 
				if(nums[i]%2!=0) return 1;
			}
			return judge(&nums[1],numsSize-1);//eg 286->28 
		}
	}
}
2024/2/24 21:25
加载中...