3n+1问题

描述

对于任意大于一的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半,经过若干次这样的变换,一定会使n变为1.求输出变换的次数,注 要求次数要对3取余;例如3->10->5->16->8->4->2->1 变换了7次,对3取余的1; n<=109

class X{
    private int n;
    private int count;
    public X() {
    }
    public X(int n,int count) {
        this.n = n;
        this.count = count;
    }
    public void changenum() {
        if(n%2!=0) {
            n=3*n+1;
        }else {
            n=n/2;
        }
    }
    public int change() {
        while(n!=1) {
            changenum() ;
            count++;
        }
        return count;
    }
}
public class Acm10 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        X x =new X(3,0);
        int n = x.change();
        System.out.println(n);
    }

}

 

posted @ 2018-01-05 11:54  沃泽法克  阅读(176)  评论(0)    收藏  举报