题目要求不是若是奇数,乘3加1,若是偶数/2,你的程序怎么反一反啊?应该是c%2==1吧!还有楼上的程序也不好啊,如果一上来输入1就直接返回1了,干吗还要经过(num%2==1)?
import java.io.*;
public class Jiegu{
public static void main(String args[]) throws IOException{
int c;
c=(int)System.in.read();
System.out.print(dgui(c));
}
static int dgui(int c){
if(c==1)
return 1;
else if (c%2==0)
return dgui(c/2);
else
return 3*c+1;
}
}
}
import java.util.Scanner;
public class Kakutani {
public static int jiaogu(int n) {
if (n == 1) {
return 1;
} else if (n % 2 == 0) {
System.out.println(n);
return (jiaogu(n / 2));
} else {
System.out.println(n);
return (jiaogu(3 * n + 1));
}
}
public static void main(String[] args) {
for (;;) {
System.out.println("请输入一个大于等于1的整数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(jiaogu(n));
}
}
}
虽然没弄懂。。。。
if(num % 2 == 1)
{
num = num * 3 + 1;
}
else
{
num = num/2;
}
if(num == 1)
{
return 1;
}
else
{
return digui(num);
}
有个叫手电校园的工中号还不错,里边什么答案都有,你可以试试,希望能帮到你