文章标题

来源:互联网 发布:js关闭iframe页面 编辑:程序博客网 时间:2024/06/06 04:05

编程从键盘输入一个整数,计算出阶乘并输出。

例如,输入 39

输出:20397882081197443358640281739902897356800000000

一看到这道题就想到当时学C语言的时候,反正是我水平有限,用C求这道题反正不会,如今在一心一意慢慢学Java,然后其实书上这个程序也有

[java] view plain copy print?
import java.math.*;

public class LargeFactorial {

public static void main(String[] args) {      System.out.println("58! is : "+factorial(58));  }  public static BigInteger factorial(long i) {      BigInteger result=BigInteger.ONE;      for (int n=1;n<=i;n++)          result=result.multiply(new BigInteger(n+""));      return result;  }  

}

如今你需要知道用什么数据类型和什么功能就好了,BigInteger和multiply在这里起到决定行作用

(求几何形状的面积之和)编写一个方法,求数组中所有几何形状对象的面积之和。方法签名如下:

public static double sumArea(shape[] a)

编写测试程序,继承抽象类shape得到圆形类Circle和矩形类Rectangle。

abstract class shape {// 抽象类

/* 抽象方法 求面积 */

public abstract double getArea();

/* 抽象方法 求周长 */

public abstract double getPerimeter();

}

创建四个对象(两个圆和两个矩形)的数组,然后使用sumArea方法求出它们的总面积。(保留4位小数)

第二题是抽象类一个简单的应用,我们课程是下周学习到抽象类和接口,我自己已经了解认知了。鉴于这题简单,就不放代码了

(找出最大的对象)编写一个方法,返回对象数组中最大的对象。方法签名如下:

public static Object max(Comparable[] a)

所有对象都是Comparable接口的实例。对象在数组中的顺序是由compareTo方法决定的。

编写测试程序,从键盘输入5个字符串和5个整数,创建一个由5个字符串构成的数组、一个由5个整数构成的数组。找出数组中最大的字符串、整数并输出。

输入
Xi’an (输入5个字符串,每行一个)
Beijing
ShangHai
GuangZhou
ShenZhen
8 9 12 7 6 (输入5个整数,以空格分隔)
输出
Max string is Xi’an (输出最大的字符串)
Max integer is 12 (输出最大的整数)
这道题是用了些时间,因为自己还没学到这里,所以边看书边写了,然后还用到了instanceof

java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
Result:布尔类型。
Object:必选项。任意对象表达式。
Class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。

此外用到了基本数据类型作为对象处理,是了解了一番

[java] view plain copy print?
import java.util.Scanner;
import java.lang.Comparable;

public class TheBiggest {

public static void main(String[] args) {      Scanner input=new Scanner(System.in);      String[] name=new String[5];      Integer[] num=new Integer[5];      for(int i=0;i<5;i++)          name[i]=input.nextLine();      for(int j=0;j<5;j++)          num[j]=input.nextInt();      System.out.println("Max string is "+max(name));      System.out.println("Max num is "+max(num));  }  public static Object max(Comparable[] zy) {      Comparable max = null;      if (zy[0] instanceof String)      {          max=(String) zy[0];          for (int i=1;i<zy.length;i++)              if (max.compareTo((String) zy[i])<0)                  max=(String) zy[i];      }      else if (zy[0] instanceof Integer)      {          max=(int) zy[0];          for (int j=1;j<zy.length;j++)              if ((int)max<(int) zy[j])                  max=(int) zy[j];              }      return max;  }  

}
转自:http://blog.csdn.net/zy_dream/article/details/49742563

0 0
原创粉丝点击