Java 找到所有快乐的数字直到
我的任务是打印从10到程序打印的所有快乐数字 3个连续数字。这3个数字应该是1880、1881和1882。 我边写边写(num2 0 | | sum>9){ 如果(num==0){ num=总和; 总和=0; } 总和+=数学功率(数值%10,2); num/=10; } 如果(总和=1){ 计数器++; System.out.println(计数器+”)“+num2+”是一个愉快的数字:-”); } num2++; 总和=0;Java 找到所有快乐的数字直到,java,while-loop,Java,While Loop,我的任务是打印从10到程序打印的所有快乐数字 3个连续数字。这3个数字应该是1880、1881和1882。 我边写边写(num2 0 | | sum>9){ 如果(num==0){ num=总和; 总和=0; } 总和+=数学功率(数值%10,2); num/=10; } 如果(总和=1){ 计数器++; System.out.println(计数器+”)“+num2+”是一个愉快的数字:-”); } num2++; 总和=0; }而(num2
}而(num2<1883)// 您应该有一个包含连续找到的数字的列表。循环,直到列表的长度为3。在循环内部检查您的候选人是否是一个令人满意的数字。如果是,则将其添加到列表中。如果因为你没有达到一个连续的快乐数字而没有清除列表。退出循环后,列表包含找到的三个连续的快乐数字
List<Integer> foundNumbers = new ArrayList<Integer>();
int candidate = 10;
while(foundNumbers.length < 3) {
if(isHappyNumber(candidate)) {
foundNumbers.add(candidate);
System.out.println(candidate + " is a happy number");
} else {
foundNumbers.clear();
}
candidate ++;
}
//Print the list members
List foundNumbers=new ArrayList();
int候选者=10;
while(foundnumber.length<3){
if(isHappyNumber(候选)){
查找编号。添加(候选);
System.out.println(候选者+“是一个快乐的数字”);
}否则{
foundNumbers.clear();
}
候选人++;
}
//打印成员列表
一般格式为:
int lastHappyNumber = 0;
int currentHappyNumber = 0;
int thirdLastSum = 0;
int secondLastSum = 0;
int firstLastSum = 0;
do {
currentHappyNumber = getNextHappyNumber(); // <--- fill in with your logic
thirdLastSum = secondLastSum;
secondLastSum = firstLastSum;
firstLastSum = lastHappyNumber + currentHappyNumber;
lastHappyNumber = currentHappyNumber;
}
while ((thirdLastSum + 1) == secondLastSum && (secondLastSum + 1) == firstLastSum);
int lastHappyNumber=0;
int currentHappyNumber=0;
int thirdLastSum=0;
int secondLastSum=0;
int firstLastSum=0;
做{
currentHappyNumber=getNextHappyNumber()59我们会有一个连续快乐数字的计数器,当计数达到3时退出。它当前是假设答案写的。我的意思是我知道如何退出循环。但在这个辅助中,我需要在最后3个“和”是连续数字时退出。我不知道如何将最后一个“和”与之前的2个“和”进行比较“List foundNumbers=new ArrayList();
”-您正在使用一些实验性的JDK吗?泛型原语仅通过支持。
int lastHappyNumber = 0;
int currentHappyNumber = 0;
int thirdLastSum = 0;
int secondLastSum = 0;
int firstLastSum = 0;
do {
currentHappyNumber = getNextHappyNumber(); // <--- fill in with your logic
thirdLastSum = secondLastSum;
secondLastSum = firstLastSum;
firstLastSum = lastHappyNumber + currentHappyNumber;
lastHappyNumber = currentHappyNumber;
}
while ((thirdLastSum + 1) == secondLastSum && (secondLastSum + 1) == firstLastSum);