“我保证我的名字出现在其中的每个程序都是由我(和我的共同作者,如果有的话)编写的,并且我完全理解这个程序。除非另有说明,否则我提交的每个程序都将完全是我自己的工作。我知道学术不诚实不仅包括复制他人的作品,而且还包括教唆或促进复制。与任何其他提交过去或现在的提交相似的代码将无论解释如何都不得分。我知道学术不诚实的后果是班级的“F”等级。我保证通过编写自己的程序来致力于学习Java。我将努力注意细节并编写程序以便我自己和其他程序员可以理解。”
程序不能接受任何输入...没有文件、下载等。
我的初步想法是,由于没有人能够做到,所以它肯定超出了我们目前在课堂上学到的范围。既然要少,你显然不能只是像每个人在任务的第一部分(常规学分)中所做的那样逐行println该段落。
我研究了使用java.util.zip进行字符串压缩,但我一直遇到的问题是不允许任何输入。我现在搁置的一个想法是:是否有一种方法可以将字符串编码为压缩形式,使代码比段落的未压缩版本少字符,并且在将其打印到控制台时只需解压缩字符串?
我也尝试过ASCII值,然而,ASCII值仅表示字符,而且所有ASCII值的字符长度都比它们用于表示的字符长,所以我没有看到它们的用处。
我现在想到的想法是取最长的重复单词并给它们分配一个字符串变量名。然后,只需使用变量串联样式将段落中的单词替换为变量即可。这是我的代码:
import static java.lang.System.out;
public class Pledge {
public static void main(String[] args){
String s=" understand ",p=" program",z=" academic dishonesty ",c=" copying",i="I pledge ";
out.println(i+"that every"+p+" with my name on it shall be written by me (and my co-authors, if any) and that i fully"+s+"the"+p+". Every"+p+" I submit shall be entirely my own work unless otherwise attributed. I"+s+"that"+z+"not only includes"+c+" other people's work, but also abetting or facilitating"+c+". Code that is similar to any other submission past");
out.println("or present will get no credit whatever the explanation. I"+s+"that the consequence of"+z+"is a grade of 'F' for the class."+i+"to devote my efforts to learning Java by writing my own"+p+"s. I shall strive to be attentive to detail and write"+p+"s "+s+"able by myself and other"+p+"mers.");
}
}
附上的代码有762个可打印字符。由于我还差112个字符,而且代码已经看起来很糟糕,有两个巨大的println语句,我觉得我可能走错了方向。我不希望有人为我编写代码(我讨厌这样做),但是一些提示或推荐将极大地受到赞赏。谢谢!