疯狂JAVA讲义本章小结个人作业——第三章

//吐槽一下这个新版编辑器的自动编码功能,为毛左边显示正常,右边编号就是乱的…..逼我改中文编号
第一题、输出九九乘法表
这个没有难度啦,无论学什么国人编写的程序语言一提到循环嵌套肯定是九九乘法表,注意的就是每一行最后的那个公式需要处理一下,要不最后带有一个,的

public class atlas{
    public static void main(String[] args){
        int i=1;
        while (i<=9){
            for (int j=1;jout.print(i+"x"+j+"="+i*j+",");
            }
            //循环外单独输出一下最后一个
            System.out.print(i+"x"+i+"="+i*i+"\n");
            i++;
        }
    }
}

第二题. 输出等腰三角形
本来这个应该挺简单的,我似乎复杂化了…….首先获取用户输入,之后找星星找规律就好了。为了简化操作又定义了一个负责重复输出的方法:

import java.util.*;
class atlas{
    public static void main(String[] args){
        System.out.print("请输入三角高度,大于1的整数");
        Scanner in=new Scanner(System.in);
        int h=in.nextInt();
        System.out.println("即将输出高度为"+h+"的三角形");
        for (int i=1;i<=h;i++){
            System.out.println(drawSpace(h-i," ")+drawSpace((i-1)*2+1,"*"));
        }
    }
    //重复输出空白和星号
    public static String drawSpace(int num,String space){
        String draw="";
        for (int n=1;n<=num;n++){
            draw+=space;
        }
        return draw;
    }
}

疯狂JAVA讲义本章小结个人作业——第三章_第1张图片

第三题. 画圆
这个似乎比较难,说实话我第一次也不知道怎么弄,主要是觉得怎么画距离啊,比如间距1.5怎么画……最后发现我想多了,用空格和行代替就好了;如果有同学画出来是椭圆注意下面的那个注释就好了,我也彻彻底底的被坑了。

import java.util.*;
public class atlas{
    public static int r=10;
    public static void main(String[] args){
        System.out.print("请输入圆的半径:");
        Scanner in=new Scanner(System.in);
        r=in.nextInt();
        System.out.println("即将输出半径为"+r+"的圆");
        paintCircle(r);
    }
    public static void paintCircle(int r){
    //这个一般第一次写都是i++,但实际呢,空格的宽度是2个星号的高度......
        for (int i=0;i<=r*2;i+=2){
/**勾股定理,自己推吧**/     System.out.println(paintSpaceLeft(i)+"*"+paintSpaceMiddle(i)+"*");
        }
    }
    public static String paintSpaceLeft(int line){
        double xian=Math.sqrt(r*r-Math.pow((r-line),2));
        int times=r-(int)xian+1;
        String draw=drawSpace(times);
        return draw;
    }
    public static String paintSpaceMiddle(int line){
        double xian=Math.sqrt(r*r-Math.pow((r-line),2));
        int times=((int)xian+1)*2;
        String draw=drawSpace(times);
        return draw;
    }
    public static String drawSpace(int num){
        String space="";
        for (int n=1;n" ";
        }
        return space;
    }
}

疯狂JAVA讲义本章小结个人作业——第三章_第2张图片

第四题、按字节截取字符串
如果要考虑的多一点确实好难,不过我是用简单的方法。perl里面截取字符是split(//);也就是正则表达式为空,所以我 就写了一个类似的。
不过似乎木有什么用哎,截取的还是字符…….
先这样吧,不懂,求大神指点~

public class atlas{
    public static void main(String[] args){
        String str="a_b-c(d)e";
/**你猜会输出shenmgui  **/
System.out.println(splitByte(str,6,1)+splitByte(str,4,1)+splitByte(str,2,1)+splitByte(str,2,1)+splitByte(str,4,1)+splitByte(str,8,1)+splitByte(str,3,1));

    }
    public static String splitByte(String str,int beg,int len){
        beg=beg-1;
        String[] in=str.split("");
        String join_str="";
        for (int i=beg;i<=len+beg-1;i++){
            join_str=join_str.concat(in[i]);
        }
        return join_str;
    }
}

呵呵

你可能感兴趣的:(疯狂JAVA作业)