`
caoruntao
  • 浏览: 481058 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

一个有趣的题目

阅读更多

 

public class Test{

	public static void main(String[] args){
		try {
			
			if(){
				System.out.print("Hello ");
			}else{
				System.out.println("world!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
	
	
}

 以上程序,在不新建类和方法的情况下,在if()里面加代码,使程序编译运行通过,输出Hello world!

 

解法1:

 

public class Test{  
  
    public static void main(String[] args){  
        try {  
              
            if(true)System.out.print("Hello "); if(false){  
                System.out.print("Hello ");  
            }else{  
                System.out.println("world!");  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }   
    }      
}  

 解法2:

 

   public class HelloWorld 
   {
	public static void main(String[] args)
	{
         try {   
               
            if(true){   
                System.out.print("Hello ");   
                	throw new Exception();
            }else{   
                System.out.println("world!");   
            }   
        } catch (Exception e) {   
            
           System.out.println("World") ;
            	
        }    
        }
    }


 

 解法3:

使用匿名类

 

if (new Object() {
				public boolean f() {
					System.out.print("Hello ");
					return false;
				};
			}.f()) {
				System.out.print("Hello ");
			} else {
				System.out.println("world!");
			}

 解法4:

不用自己写方法,不用新建类或者匿名类, 动态脚本执行

 

    if ( 
             new ScriptEngineManager().getEngineByName("JavaScript").eval("print ('Hello ');")==null
                      ) {
				System.out.print("Hello ");
			} else {
				System.out.println("world!");
			}

解法5:

public class Test{  
  
    public static void main(String[] args){  
        try {  
              
            if(new java.io.FileFilter(){public boolean accept(java.io.File file){System.out.print("Hello ");return false;}}.accept(null)){  
                System.out.print("Hello ");  
            }else{  
                System.out.println("world!");  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }   
    }  
      
      
}

  解法6:

c++

#include <iostream>

int main(void){
	if(((std::cout<<"Hello "),false)){
		std::cout<<"Hello "<<std::endl;
	}else{
		std::cout<<"world!"<<std::endl;
	}
	return 0;
}

 解法7:

public class Test{

	public static void main(String[] args){
		try {
			
			if(((System.out.printf("Hello "))==null)){
				System.out.print("Hello ");
			}else{
				System.out.println("world!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
	
	
}

 解法8:

public class Hello {
	public static void main(String[] args) {
		try {
			if (new Hello(){{System.out.print("Hello ");}}==null){
				System.out.print("Hello ");
			} else {
				System.out.println("world!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  解法9:

用反射

        if(System.out.getClass().getMethod("print",String.class).invoke(System.out, "Hello ")!=null){
            System.out.print("Hello ");  
        } else {  
            System.out.println("world!");  
        }  

解法10:

if(args.length == 0 ? Test.class.getDeclaredMethod("main",args.getClass()).invoke(new Test(), new Object[]{new String[]{"a"}}) != null : true){
                System.out.print("Hello ");
            }else{
                System.out.println("world!");
            }

 解法11:

try {
			if (args == null?true :((Test.class.getMethod("main", new String[1].getClass()).invoke(new Test(), new Object[1])) instanceof Void)
					) {
				System.out.print("Hello ");
			} else {
				System.out.println("world!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

 解法12

public static void main(String args[]){ 

if(args.length == 0){ main(new String[1]); main(new String[2]);} else if(args.length == 1) { 
System.out.print("Hello"); 
} 
else{ 
System.out.print(" world!"); 
}	
}

 解法13:

if (args.length == 0 ? new Object() {
			boolean f() {
				Test.main(new String[2]);
				return false;
			}
		}.f() : true) {
			System.out.print("Hello");
		} else {
			System.out.print(" world!");
		}
	
 

解法14

public class Test{

    public static void main(String[] args){
        try {            
            if(args==null || new Object(){boolean n(){main(null);return false;}}.n()){
                System.out.print("Hello ");
            }else{
                System.out.println("world!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
}

 解法15

	public static void main(String[] args){  
		try { 
			if(new Callable<Boolean>() {
				public Boolean call() {
					System.out.print("Hello ");  
					return false;
				}
			}.call()){  
				System.out.print("Hello ");  
			}else{  
				System.out.println("world!");  
            }  
         } catch (Exception e) {  
            e.printStackTrace();  
        }   
	}  

 解法16:

外层 args 的长度为0 

args.length == 0 ? Test.class.getDeclaredMethod("main",args.getClass()).invoke(new Test(), new Object[]{new String[]{"a"}}) != null : true 

Test.class.getDeclaredMethod("main",args.getClass()).invoke(new Test(), new Object[]{new String[]{"a"}}) != null 为false 

所以此时应该打出"world!" 

在此之前 判定 
Test.class.getDeclaredMethod("main",args.getClass()).invoke(new Test(), new Object[]{new String[]{"a"}}) != null 为false  的过程中 
invoke的调用参数 args ="a" 长度是1 

所以args.length == 0的判断结果为true 

此时打印出"Hello " 

合起来就是正确答案

 

 

 

 

 

分享到:
评论

相关推荐

    有趣的算法题目

    其基本思想是:从一个可能的解出发,试探性地进行搜索,如果发现当前解不可能是最终的解(或者不符合题目要求),就回退到上一步重新选择,并且以这种方式,一直搜索直到找到最终解为止。N皇后问题使用回溯法,就是...

    java两条有趣的题目

    这个文件可能包含了一个与`Qizhong_1.java`不同的但同样具有挑战性的题目。它可能涉及线程同步与并发,这是Java中的一个复杂主题,包括synchronized关键字、volatile变量、wait()、notify()和notifyAll()方法。此外...

    五年级开放题.pdf

    组合问题的另一个有趣题目是找出使用不同长度的木棍组成正方形的所有可能方法。这种问题需要学生对几何图形有深刻的认识,通过边长分析,计算出所有可能的组合数,这对培养学生的空间想象能力有很大帮助。 数字组合...

    20个有趣的c++试题

    亲密数是指两个数,其中一个数的所有真因子之和等于另一个数,反之亦然。 **解析:** 遍历1至3000之间的数,对于每个数,找到其真因子并求和,然后检查这个和是否在范围内且其真因子和是否等于原数。这是一个经典的...

    12个有趣的C语言面试题

    答案:上面代码里的问题在于函数gets()的使用,这个函数从stdin接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。这里推荐使用标准函数fgets()代替。 gets()函数的使用是unsafe的,它不检查缓存...

    数论问题的MATLAB实现

    数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 21 3105168421 63105168421 编写代码并验证结论

    python算法趣味题目

    **题目描述**:编写一个程序,输入一个任意长度的字符串,统计其中每个不同字符的出现次数,并输出统计结果。 **Python解答分析**: 1. **Dictionary声明与初始化**:首先声明一个空字典`dic={}`用于存储字符及其...

    数值分析课程设计题目

    * 题目背景:欧洲文艺复兴时期的著名人物达·芬奇曾经提出一个有趣的“狼追兔子”问题。 * 问题描述:追赶曲线的计算机模拟问题,欧洲文艺复兴时期的著名人物达·芬奇曾经提出一个有趣的“狼追兔子”问题。 * 解决...

    深度学习、机器学习方向计算机毕业设计题目大全(算法应用实践类)

    另一个有趣的题目是“基于用户评分的隐式成分信息的研究”,这一项目聚焦于推荐系统中算法的应用,要求学生通过分析用户的评分数据来挖掘潜在的消费模式。这不仅需要学生具备扎实的数学基础,还需要他们掌握大数据...

    程序员有趣的面试智力题.pdf,这是一份不错的文件

    3. 字符串处理问题:如何将一个长度为 n 的字符串向左循环移动 m 位? 答案:把字符串切成长为 m 和 n-m 的两半,分别逆序,再对整个字符串逆序。 4. 几何问题:如何将一个矩形蛋糕切成大小相等的两块? 答案:...

    hdu题目分类

    - **1025**:经典的DP题目,最长递增子序列问题,这是一个经典的DP题目,通常需要采用NlogN的时间复杂度来实现。 - **1028**:整数拆分问题,通过母函数解决,这也是一个典型的DP题目。 - **1051**:经典贪心或DP题...

    ctf大赛题目 格式为图片格式

    除了发现有一个JPEG图像正在传输之外,并没有其他有趣的信息。 2. **深入分析**:接下来,在Wireshark中选择“文件”-&gt;“导出”-&gt;“对象”-&gt;“HTTP”,从而提取出所有通过HTTP传输的对象。在这个过程中,参赛者找到...

    ACM的题目(非常经典的)

    这个压缩包中包含的"ACM題目.pdf"很可能是历年来ACM竞赛中的经典题目集,是提升编程技能和算法理解的重要资源。下面,我们将深入探讨ACM竞赛及其相关的知识点。 ACM竞赛的目标是激发学生对计算机科学的兴趣,特别是...

    USACO题目Dual Palindromes (dualpal)及代码解析

    Dual Palindromes(dualpal)这道题目尤为有趣,它考察参赛者对回文数的理解、多进制表示的掌握以及C语言文件输入输出的处理能力,还考验算法设计的创新和效率。 首先,让我们来探讨回文数的概念。所谓回文数,就是...

    信息技术论文题目大全

    综上所述,信息技术论文题目大全不仅是对当前教育领域信息技术应用的梳理,更是对教育未来发展的一个展望。这些题目所指向的研究方向,将有助于推动信息技术与教育深度融合,促进教学方法的革新,提升学生的信息技术...

    2020美赛题目译文

    2020年美国数学建模竞赛(MCM)是一个全球性的赛事,旨在激发大学生运用数学工具解决复杂问题的热情和能力。本届的竞赛题目覆盖了海洋生态、物理学和数据分析等多个领域,既考查了学生的专业能力,也锻炼了他们的...

    2017和2015电赛题目

    这两个文件很可能分别包含了2015年和2017年电子竞赛的题目集。用户可以通过解压文件来查看具体的题目内容,包括但不限于电路设计、信号处理、嵌入式系统、软件编程等方面的问题。虽然没有提供代码,但这些题目可以...

    2021美赛D题题目翻译

    根据**influence_data**数据集构建一个或多个有向的音乐影响力网络,其中节点代表艺术家,边表示影响力关系。这种网络有助于直观展示艺术家之间的相互影响。此外,还需要设计一套参数来量化这种影响力,比如通过计算...

    编程JAVA题目最新50题

    另一个有趣的题目是寻找水仙花数。水仙花数在数学上定义为一个三位数,它的每个位上的数字的立方和等于其本身。编写程序来解决这个问题,我们不仅练习了循环控制结构,还学习了如何通过算术运算来提取和处理数字的...

    模拟考试题目参考答案

    “有趣的数”是指一个二进制数,它满足以下条件: - 数字中必须至少包含一个0。 - 数字中必须至少包含一个1。 - 数字中必须至少包含一个2。 - 数字中不能包含3以上的数字。 #### 解析 此程序通过动态规划来计算满足...

Global site tag (gtag.js) - Google Analytics