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); } }

浙公网安备 33010602011771号