public class E { /**
* @param args
*/
public static void main(String[] args)
{
double m=Math.random();
int n=(int)m*20;
if(n%2!=0)
{n=n*3+1;
}
while(n!=1)
{ n=n/2;
if(n%2!=0)
n=n*3+1;
}
System.out.println(n);
}}
此程序是为了验证任意自然数如果是偶数除2如果是奇数乘3加1如此循环最终结果为1 ,我的编译通过了,为什么什么都没有输出??
-->(int)m*20==0*20==0
就好了啊
因为random产生的是0-1之间的数据,抓换成int就是0啊
public class E { /**
* @param args
*/
public static void main(String[] args)
{
double m=Math.random()*20;
int n=(int)m;
System.out.println(n);
if(n%2!=0){
while(n!=1)
{n=n*3+1;
}
System.out.println(n);
}
else
while(n!=1)
{ n=n/2;
System.out.println(n);
}
}
}
最终 结果就为1了
int n=(int)(m*20)+1;
任然没有输出
* @param args
*/
public static void main(String[] args)
{
double m=Math.random();
int n=(int)(m*20)+1;
if(n%2!=0)
{n=n*3+1;
}
while(n!=1)
{ n=n/2;
if(n%2!=0)
n=n*3+1;
}
System.out.println(n);
}}我改后的代码,任然没有输出,只看到cpu跑得老高,求解释?