//吐槽一下这个新版编辑器的自动编码功能,为毛左边显示正常,右边编号就是乱的…..逼我改中文编号
第一题、输出九九乘法表
这个没有难度啦,无论学什么国人编写的程序语言一提到循环嵌套肯定是九九乘法表,注意的就是每一行最后的那个公式需要处理一下,要不最后带有一个,的
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;
}
}
第三题. 画圆
这个似乎比较难,说实话我第一次也不知道怎么弄,主要是觉得怎么画距离啊,比如间距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;
}
}
第四题、按字节截取字符串
如果要考虑的多一点确实好难,不过我是用简单的方法。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;
}
}