你的程序这样改 include "stdio.h"int F(int a){ if (a==1) return 1;if (a%2) return 1+F(3*a+1);else return 1+F(a/2);} void main(){ int a=0;scanf("%d",a);printf("%d",F(a));} 有的数字递归次数很长导致堆栈溢出 我是这样算的,可以一次算出1~n的循环步数 ...