《开源框架那点事儿33》极限挑战:用一条循环语句正确输出99表!【前两名奖图书一本】

问题的由来

  话说我这里有个小萝莉非要拜我为师,呵呵,对于程序媛我一向——嗯嗯觉得程序不如人好看,再加上该名萝莉大学还没毕业,术语都多半没有听过,于是就想着拒绝,当时嘴一贱,就说了一句:你用一个For循环做个99表出来。
  当然,这个对于小萝莉们来说,已经足够形成挑战了,但是对于群里的一众大佬们来说,自然是不在话下,3下5除二就搞定了。我又异想天开一下,如果不用判断语句,是不是也完成呢?粗想想是可以的,于是动手摆了几行代码,确实可以。于是就不断加码,不断增加新的完成条件,于是就形成了下面的问题,挑战极限这个定语,有一定的博眼球的意思,实际上不是那么难了。

注意:
  此题是考思想的,用“*”之外的运算符,如 "&  |  ^  >> << / % "的,虽然确实可以有解,但是代码逻辑与我倡导的:"一个好的算法首先是简单易懂的,其次是清晰明了的,再个一定是充满美感的"是相违背的。为什么下面条件这么多,实在是亲们的创意无限,我防不胜防哦。

活动规则:


1. n可以是任意正整数,只要N的平方不要溢出都可以
2. 一行一行print结果的无效
3. 不允许出现if,switch,?:语句及判断语句的变体,也就是只允许循环变量做条件比较以确定循环次数,不允许其

4. 它变量进行条件判断
5. 不允许出现异常
6. 循环语句中只能有一个变量
7. 代码行数超过100行的无效
8. 特别提示:提交问题并CSDN关注本人,回答才有效
9. 答案是否有效解释权归本人所有


问题如下

  不管是什么编程语言,最好是Java。只要是在程序中只用了一条循环语句正确的输出了99表,那么就算挑战成功。
  下面是我的测试用例:


测试1:
public static void main(String[] args) {
        new Test99().print(9);
}
运行结果:
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81


测试2:
public static void main(String[] args) {
        new Test99().print(5);
}


运行结果
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
第一个、第二个回答正确的人将获得奖励,以抢先的时间为准。

特别提示:凡是有两个for循环的,有 if有?:的,有Switch的全部Out!

答案请提交到:http://bbs.tinygroup.org/thread-1487-1-1.html

你可能感兴趣的:(架构设计)