角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
如:输入22,输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 STEP=16
自己乱写了一段有错的话望大神指点
#include<stdio.h>
int jiaogu(int a,int *b)
{
if(a==1){printf("%d\n",a);++(*b);return 1;}
if(a%2==0){printf("%d ",a);++(*b);return jiaogu((a/2),b);}
if(a%2!=0){printf("%d ",a);++(*b);return jiaogu((a*3+1),b);}
}
int main()
{
int a,*b=new int;
*b=0;
scanf("%d",&a);
jiaogu(a,b);
printf("step=%d\n",*b);
}