这段代码是否有资格成为Java中的Quine?

时间:2015-12-01 11:19:01

标签: java theory quine

这是代码。它基本上从原始代码文件中读取并打印到终端上。

import java.io.*;
public class Quine
{
    static void Quine() throws IOException
    {
        FileReader fr = new FileReader("C:/Quine.java");        
        BufferedReader br = new BufferedReader(fr);
        String s = "";
        while((s = br.readLine()) != null)
        {
           System.out.println(s);
        }
    }
}

实际上,它工作正常,产生与输出完全相同的代码。但根据定义,它是否有资格作为quine?考虑到我仍然将文件作为参数传递给它。尽管它是程序员指定的而不是用户输入的输入,它仍被视为输入吗?

2 个答案:

答案 0 :(得分:6)

它不被视为有效的 quine ,您必须避免任何I / O操作。

打开源代码将其打印出来是第一个要避免的作弊行为!

答案 1 :(得分:2)

它只会打印Quine类的代码(不是实际需要的源代码才能使它运行 - 主要方法)。所以,不,它不是奎因。

  

quine是一个非空的计算机程序,不需要输入和   生成自己的源代码的副本作为其唯一的输出。