zoukankan      html  css  js  c++  java
  • 菜鸟涂鸦作品展_No.22

    //【程序22】 题目:利用递归方法求200!。
    import java.util.*;
    class shuju{
    double h;//设置成double将能进行更大数据的运算,至少比text21中的计算能力要大
    shuju(double i){
    h=i;
    }
    }
    public class _22_200jiecheng {
    public static void jiecheng(Vector<shuju> n,int a){
    double num=0;
    for (int j=0 ; j<n.size(); j++){
    n.elementAt(j).h=n.elementAt(j).h*a;
    }
    for (int j=0; j<n.size(); j++){
    if ((n.elementAt(j).h+num)>=10){
    try
    {
    num=(n.elementAt(j).h-n.elementAt(j).h%10)/10;
    n.elementAt(j+1).h=n.elementAt(j+1).h+num;
    n.elementAt(j).h=n.elementAt(j).h%10;
    }
    catch(ArrayIndexOutOfBoundsException aiobe)
    {
    num=(n.elementAt(j).h-n.elementAt(j).h%10)/10;
    n.addElement(new shuju(num));
    n.elementAt(j).h=n.elementAt(j).h%10;
    }
    }
    }
    }
    public static void main(String[] args) throws Exception
    {
    _22_200jiecheng jc=new _22_200jiecheng();
    Vector<shuju> n=new Vector<shuju>();
    shuju m=new shuju(1);
    n.addElement(m);
    // n.addElement(1);
    for (int i=1 ; i<=200 ; i++){
    jc.jiecheng(n,i);
    }
    for (int i=n.size() ; i>0; i--){
    System.out.print((int)n.elementAt(i-1).h);
    }
    }
    }

    涂鸦心得:

      这个程序前后纠结了两天,花的时间也不少,算是有两个收获:

      1.Vector动态数组的使用,这个能大能小的容量以后用的机会可能较大。但是这个指向的对象的值竟然不能直接改让人很纠结,只有新建一个类,将其指向的元素转换为一个变量,才能重新赋值,也是程序中出现众多.h的原因。

      2.try-catch的使用,以前看见有程序用到try-catch就感觉很牛逼,现在自己用了用,还是挺好用的。面前所知道的就是出现异常则执行一种情况,无异常则执行另一种情况。有空了再认真学习一下。

      本周还有8个程序呢,坚持。。。

  • 相关阅读:
    ubuntu下进程kidle_inject致使编译软件很慢
    linux下保存下位机输出的串口信息为文件
    ubuntu下转换flv格式为mp4格式
    ubuntu下安装mkfs.jffs工具
    linux下安装evernote国际版
    linux 下使用命令查看jvm信息
    linux下面实时查看进程,内存以及cpu使用情况使用命令
    Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
    linux如何复制文件夹和移动文件夹
    linux解压war包的命令
  • 原文地址:https://www.cnblogs.com/aniuer/p/2670695.html
Copyright © 2011-2022 走看看