你能帮助将这个Pseudocode翻译成java并得到结果吗? 因为我尝试但没有得到结果,我开始学习Java。
num=2
create list called list
while(true){
empty list
bool = false
for i=1 to num-1
if(num mod i==0){
add i to list
if((i &(bitwise)1)==1)
bool=!bool
}
if sum(list)==num && bool//logical and
return num; //Found the number we seek
num++
}
这是Java翻译,但我不确定,因为它没有得到结果编号
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.ArrayList;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
//set a number
int num=2;
//make list called list
ArrayList<Integer> list = new ArrayList<Integer>();
//run this while true, but just saying true makes an infinite loop
boolean bool = true;
while(bool){
//clear the list
list.clear();
//set
bool = false;
for (int i= 1; i < num-1; i = i + 1){
//If number modulo i is 0
if((num % i) ==0){
list.add(i);
//If bitwise and of i and 1 is true
//This is doing things with the underlying binary
if((i & 1)==1)
//Reverse the valuse of bool
bool = !bool;
}
int sum = 0;
//for each element in the list
for(int x: list){
//add it to sum
sum += sum;
}
//execute is sum and num are the same and bool is true
if ((sum == num )&& bool){}
return num;
//This does nothing as it is never reached. return ends your execution
num++;
}
}
}
}
答案 0 :(得分:0)
这看起来像是一些任务。无论如何,这里是伪代码的翻译:
public int code ()
{
int num = 2;
List<Integer> list = new ArrayList<> ();
while (true)
{
list.clear ();
boolean bool = false;
for (int i = 1; i < num; ++i)
{
if (num % i == 0)
{
list.add (i);
if ((i & 1) == 1)
{
bool = !bool;
}
}
}
if (sum (list) == num && bool)
{
return num;
}
num++;
}
}
private int sum (List<Integer> list)
{
return list.stream ().mapToInt (i -> i).sum ();
}
代码肯定会花时间打印出任何结果。
尝试调用代码方法,然后您就会看到。
除此之外,您可能会问这个代码试图找到多少个数字?
好吧,通过逻辑演绎,我可以看出这段代码正试图找到奇数个奇数的最小完整数。试着考虑一下。
答案 1 :(得分:0)
它永远不会得到结果,至少可能是这样。
正如某人已经说过的那样,它试图找到具有奇数个奇数因子的最小完美数&#34;,并且任何数字中包含奇数奇数的奇数。因此,它寻找奇怪的完美数字,如果它存在或尚未被证实,那就是为什么它永远不会给你足够快的结果。它可能需要数百万年才能永远。这个问题应该由逻辑解决。
BTW:实际上我就是那个制作这个伪代码的人,更好的运气解决了下一个弱代码。 (: