PAT求助 3n+1继续猜想 一个测试点没有通过
#PAT乙级题
#继续(3n+1)猜想
#第四测试点没有通过,求大佬找出原因
#include<stdio.h>
#include<stdlib.h>
int a[100];
int temp=0;
int flag=0;
int judge(int n){
if(n==1){
return flag;
}else{
if(n%2==0){
flag++;
a[temp]=n/2;
temp++;
judge(n/2);
}else{
flag++;
a[temp]=(3*n+1)/2;
temp++;
judge((3*n+1)/2);
}
}
}
int main(){
int n;
scanf("%d",&n);
int b[100];
for(int i=0;i<n;i++){
scanf("%d",&b[i]);
judge(b[i]);
}
for(int i=0;i<100;i++){
for(int j=0;j<n;j++){
if(a[i]==b[j]){
b[j]=0;
}
}
}
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(b[j]<b[j+1]){
int temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
int num=0;
for(int i=0;i<n;i++){
if(b[i]!=0){
num++;
}
}
for(int i=0;i<n;i++){
if(b[i]!=0){
int temp=b[i];
printf("%d",temp);
if((num-1)!=0){
printf(" ");
num--;
}
}
}
return 0;
}
#小生在此谢大佬!!