Loop stop Java
•
Java
For the following code, when "n" is about 100000, it will stop running I need it to run to a million I don't know what's wrong with it. I'm still learning Java, so there may be simple errors in the code
public class Problem14{ public static void main(String[] args) { int chainLength; int longestChain = 0; int startingNumber = 0; for(int n =2; n<=1000000; n++) { chainLength = getChain(n); if(chainLength > longestChain) { System.out.println("chainLength: "+chainLength+" start: "+n); longestChain = chainLength; startingNumber = n; } } System.out.println("longest:"+longestChain +" "+"start:"+startingNumber); } public static int getChain(int y) { int count = 0; while(y != 1) { if((y%2) == 0) { y = y/2; } else{ y = (3*y) + 1; } count = count + 1; } return count; } }
Solution
Use long as the data type instead of int
I hope this point can be understood. This number is indeed higher than 1000000, so the variable y takes a long time to maintain it
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码