冰雹算法

来源:百度知道 编辑:UC知道 时间:2024/06/24 17:04:31
c 语言问题 不知道为啥总是没法结束算法
#include<stdio.h>
#include<stdlib.h>
void hailrtone(long k);
int main(void)
{
long num;
scanf("%d",num);
hailstone(num);
}
hailstone(long k)
/*{ long i,j,n;
n=k;
if(k%2==0){
hailstone(k-1)=k*2;
printf("%l",k);
}
else if((k%2)==1){
hailstone(k-1)=k*3+1;
printf("%l",k);
}
else(k==1)
{
break;
printf("%l",k);
}
return 0;
}*/
{

int i,j;
if(k%2==0){
k=k/2;
printf("%d ",k);
hailstone(k-1);
i=i++;

}
else if(k%2!=0){

k=k*3+1;
printf("%d ",k);
hailstone(k-1);
j=j+1;

}

hailstone(long k)
{
int i,j;
if(k<2) return;/*这里递归返回,不保证算法正确,只是提供一种返回的方法*/
if(k%2==0){
k=k/2;
printf("%d ",k);
hailstone(k-1);
i=i++;

}
else/*被2除的余数除了0就是1,不会有第三种情况的*/
{
k=k*3+1;
printf("%d ",k);
hailstone(k-1);
j=j+1;
}
}