zoukankan      html  css  js  c++  java
  • 课堂测试

    课堂测试

    递归

    上周课堂上老师给了一个递归的题目,没有做出来,课后学习了一下。题目如下:

    我写的代码如下:

    public class TestArgs1{
      public static void main(String [] args){
        int num = Integer.parseInt(args[0]);
        System.out.println(Sum(num));
      }  
        public static int Sum(int n){
          if (n==1)
            return n;
          else
            return n = Sum(n-1)+n;
        
      }
    }
    

    运行结果如下:

    MySort

    本周课上有一个MySort的题目:

    课后我写了如下代码

    import java.util.*;
    
    public class MySort{
      public static void main(String [] args){
        String [] toSort = { "aa:10:1:2", 
                             "dd:20:5:2",
                             "cc:40:4:5" };
        System.out.println("Before sorting:");
        for (String str : toSort)
          System.out.println(str);
        //sort
    
        int [] c3 = new int[toSort.length];
        for (int j=0; j<toSort.length; j++){
            String [] tmp = toSort[j].split(":");
            c3[j] = Integer.parseInt(tmp[2]);
           }
        Arrays.sort(c3);
    
        System.out.println("After sorting:");
    
        for (int i=0; i<c3.length; i++){
          for(int j=0; j<toSort.length; j++){
            char a = toSort[j].charAt(7);
    
            if ((int)a == c3[i]){
             System.out.println(toSort[j]);
            }
           
            
          }    
        }  
      }
    }
    

    编译没问题,可运行时却出现了问题

    结果只打印了排序之前的,排序之后的没有打印。我在IDEA里调试了一下

    发现运行到if语句时,把a转换成Int类型,实际上是字符‘1’的ASCII码49,所以不管怎么比较都是false,自然就执行后面的语句了。为了解决这个问题,我将if ((int)a == c3[i])改成了if ((int)a-48 == c3[i]),这样就可以了。

  • 相关阅读:
    魅族note手机 图片打马赛克
    魅蓝note手机一键root
    eclipse启动时return code 13
    Eclipse adt 23中运行百度地图官网上的demo出现fatal错误
    windows上部署svn服务器
    windows下jenkins slave 搭建
    图片懒加载
    tomcat7 设置静态资源的expires过期时间
    如何将不带www的根域名301重定向到带www的主域名
    简单的防止图片另存为
  • 原文地址:https://www.cnblogs.com/-zzr-/p/6803944.html
Copyright © 2011-2022 走看看