文章标题

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

例如,输入 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值