• Java编制至今总结和学习报告


    日期:2018.8.19

    星期日

    博客期:006

      说个事,本来想把博客园做一个交流平台的,可是交流度有点少...嗯...我看我还是把这个平台当作经验传授平台和自己的作品发布平台吧!Java的知识详解,我在这里说再多,跟别的教程平台又会冲突!浪费那么多的时间不值得。嗯,之前的那些教程啥的我就弃坑啦!这么大的坑我肯定无能为力啊!

      好吧,这次来看看正事!我本来想着也写一边 Java 的 Bignum 类的,但 Java 内部是有这个类的啊!这在我写了一半的时候,给我报错了,说是重名了啊!我这才想起来,不过确实可以通过查找替换啊!但这1400多行,我得累死啊!用C++写的时候,都废了不少的劲头。算了,放弃了,不是我这个人不行,是这没啥用啊!还有本来想借着C++的STL书来讲一讲库函数呢!老师说过哈~大厚书不能买...这本不厚(呵呵),我愣是等了将近3个月,还是没有发货...看下面几张图吧!我就不说了。

      今天国际惯例是写博客啊!所以之前的准备工作交给周一至周六去做!大家可以仿照我之前(上一个博客的图片)的方式来写程序啊!这样可以声明你写的日期和内容,因为你前期练习都是基础性的东西,所以文件的关联性不太大!这种方法就非常好!啊!非常好!反正写也写了,展示一部分吧!

    //主函数
     public static void main(String args[]){
      
     }
     //--------------<内部数据存储>--------------//
     //---
     protected char []num=new char [100];
     protected boolean ifhavef;
     //--------------<附加小函数>--------------//
     //---
     //数据类型转换
     //===int和char表示变换
     public static int change(char x){
      int y=(int)x+'0';
      return y;
     }
     public static char change(int x){
      char y;
      switch(x){
      case 0:y='0';break;
      case 1:y='1';break;
      case 2:y='2';break;
      case 3:y='3';break;
      case 4:y='4';break;
      case 5:y='5';break;
      case 6:y='6';break;
      case 7:y='7';break;
      case 8:y='8';break;
      case 9:y='9';break;
      default:y='';break;
      }
      return y;
     }
     //===int和char*的转换
     public static int change_s(char x[]){
      int y;
      boolean havef=(x[0]=='-');
      char []z;
      z=x;
      if(havef){
       Bignum.runformer(z);
      }
      
      if(havef){
       y=-y;
      }
      return y;
     }
     public static void change_s(int x,char y[]){
      
     }
     //--------------<静态小函数>--------------//
     //---
     //位数函数
     //===[长度前移更新 ]
     public static void runformer(char x[])
     {
      int m=0;//执行前移的次数
      for(int i=0;i<100;i++)//测定m的值
      {
       if(x[i]!='0')
        break;
       m++;
      }
      if(m==0)
       return ;
      for(int i=0;x[i+m-1]!='';i++)//前移
       x[i]=x[i+m];
      if(x[0]=='')
      {
       x[1]=x[0];
       x[0]='0';
      }
     }
     //===[字符串位数升高 [后面补 0 ](默认升高 1 位) ]
     public static void run0(char x[])
     {
      int zz=Bignum.litude(x);
      x[zz]='0';
      x[zz+1]='';
     }
     public static void run0(char x[],int ct)
     {
      for(int i=1;i<=ct;i++)
       Bignum.run0(x);
     }
     //===[长度后移 x位(默认后移 1 位)]
     public static void runlatter(char x[])
     {
      char s[]=new char [100];
      int i;
      for(i=0;i<100&&x[i]!='';i++)
       s[i+1]=x[i];
      s[i+1]='';
      s[0]='0';
      x=s;
     }
     public static void runlatter(char x[],int t)
     {
      char s[]=new char [100];
      s[1]=x[0];
      int i;
      for(i=0;i<100&&x[i]!='';i++)//后移一次
      {
       s[i+1]=x[i];
      }
      s[i+1]='';
      s[0]='0';
      x=s;
      if(t!=1)//递归
       Bignum.runlatter(x,t-1);
     }
     //---
     //---
     //相反数
     public static Bignum1 anti(Bignum1 x)
     {
      Bignum1 z=new Bignum1(x.num);
      z.setf(!x.ifhavef);
      z.test();
      return z;
     }
     //交换函数
     public static void exchange(Bignum1 x,Bignum1 y)
     {
      Bignum1 z=new Bignum1(x);
      x.set(y.num,y.ifhavef);
      y.set(z.num,z.ifhavef);
      x.test();
      y.test();
     }
     //返回 10 的 i 次幂
     public static Bignum1 Bignum::run1(int i)
     {
      Bignum1 z;
      z.set("1",false);
      Bignum.run0(z.num,i);
      z.test();//无用
      return z;
     }
     //---
     //---
     //长度函数
     //===[测量整形、大数或字符串的长度]
     //------准确的长度(不含'')
     //------int最大长度为10
     public static int litude(int x)
     {
      int num=10;
      int z=1000000000;
      if(x==0)
       return 1;
      while(num!=1)
      {
       if((x/z)!=0)
        break;
       num--;
       z=z/10;
      }
      return num;
     }
     public static int litude(char x[])
     {
      int m;
      Bignum.runformer(x);
      for(int i=0;i<100;i++)
       if(x[i]=='')
       {
        m=i;
        break;
       }
      return m;
     }
     public static int litude(Bignum1 x)
     {
      return Bignum.litude(x.num);
     }
     //===[判断是否 x和 y相同长度 ]
     public static boolean ifsamelong(Bignum1 x,Bignum1 y)
     {
      return(Bignum.litude(x)==Bignum.litude(y));
     }
     //---
     //--------------<output、intput函数>--------------//
     //---
     //set函数
     //===[设置ifhavef]
     public void setf(boolean ifhavef_s)
     {
      ifhavef=ifhavef_s;
     }
     //===[设置num]
     public void setnum(char x)
     {
      char arrays[]=new char [100];
      arrays[1]='';
      arrays[0]=x;
      setnum(arrays);
     }
     public void setnum(char num_s[])
     {
      num=num_s;
     }
     //===[设置num和ifhavef]
     public void set(char num_s[],boolean ifhavef_s)
     {
      setf(ifhavef_s);
      setnum(num_s);
      test();
     }
     public void set(boolean ifhavef_s,char num_s[])
     {
      set(num_s,ifhavef_s);
     }

  • 相关阅读:
    TOJ 假题之 Cow Brainiacs
    TOJ 2596: Music Notes
    Wannafly模拟赛2
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
    2017 ACM/ICPC Asia Regional Shenyang Online
    北京师范大学第十五届ACM决赛-重现赛
    Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)
    LibreOJ β Round #4
    长沙理工大学第十二届ACM大赛-重现赛
  • 原文地址:https://www.cnblogs.com/onepersonwholive/p/9500637.html
Copyright © 2020-2023  润新知