java在给定范围内查找快乐数字的数量
我需要找到给定范围内的所有快乐数字(输入)
快乐数是一个最终达到1的数字,它被每个数字的平方和所取代。13是一个快乐的数字,因为1^2+3^2=10和1^2+0^2=1,所以13是一个快乐的数字
到目前为止,我有:
import java.util.HashSet;
import java.util.Set;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String wrd = scan.nextLine().trim();
String wrd2 = scan.nextLine().trim();
int nieuwnummer = Integer.parseInt(wrd);
int nieuwnummer2 = Integer.parseInt(wrd2);
// int count = 0
Set<Integer> numbers = new HashSet<Integer>();
for (int i = nieuwnummer; i <= nieuwnummer2; i++) { while(nieuwnummer>0) {
nieuwnummer2 += (nieuwnummer % 10)*(nieuwnummer % 10);
nieuwnummer /=10; };
}
nieuwnummer = nieuwnummer2;
}
//System.out.println(count)
}
我认为这个范围还不起作用,我需要一种方法来实际计算快乐数字。请帮忙:)
# 1 楼答案
我不知道我是否正确理解你,但是:
您有
while(nieuwnummer > 0)
,这是开始时的某个数字,但在第一个循环后它将变为0[例如,如果范围从1到16],因此它将前进一次,然后跳过对于这类问题,我将使用以下内容: https://www.geeksforgeeks.org/lucky-numbers/
并在循环中迭代
# 2 楼答案
下面是一些工作示例