• 各种算法题MARK


    ①、斐波那契数列  

     1 static void method(){
     2         
     3         String a = "1",b="1";
     4         char[] aArr;
     5         char[] bArr;
     6         int num = 0;
     7         int i,j;
     8         int temp = 0;
     9         int k;
    10         System.out.print(" "+a+" "+b);
    11         for(i =2 ; i<=500;i++){
    12             aArr = a.toCharArray();
    13             bArr = b.toCharArray();
    14             a = b;
    15             k = bArr.length - aArr.length;
    16             for(j = aArr.length-1;j>=0;j--){
    17                 temp = (bArr[j+k]-'0')+(aArr[j]-'0') + num;
    18                 num = 0;
    19                 if(temp >=10){
    20                     temp -=10;
    21                     num = 1;
    22                 }
    23                 bArr[j+k] = (char) (temp + '0');
    24             }
    25             while(j+k>=0 &&num==1){
    26                 temp = (bArr[j+k] - '0') + num;
    27                 if(temp > 10){
    28                     bArr[j+k] = (char) (bArr[j+k] + (temp - 10));
    29                     num = 1;
    30                 }else{
    31                     num = 0;
    32                 }
    33                 j--;
    34             }
    35             
    36             if(num ==1){
    37                 char[] cArr = new char[bArr.length+1];
    38                 for(int l=bArr.length-1;l>=0;l--){
    39                     cArr[l+1] = bArr[l];
    40                 }
    41                 cArr[0] = 1 + '0';
    42                 b = String.valueOf(cArr);
    43             }else{
    44                 b =String.valueOf(bArr);
    45             }
    46             if(i%10 ==0)
    47                 System.out.println();
    48             System.out.print(" "+b);
    49         }
    50         
    51     }

    ②、找大数组中的最大的N位

     1 /*
     2      *    a为源数组,b为要找最大的多少位 
     3      */
     4     static int[] method(int a[], int b){
     5         
     6         int[] nums = new int[b];
     7         
     8         for(int i = 0;i<b;i++)
     9             nums[i] = a[i];
    10         
    11         Arrays.sort(nums);
    12         
    13         for(int i = b;i<a.length;i++){
    14             
    15             if(a[i]>nums[b-1]){
    16                 int j = b-1;
    17                 while(j>0&&a[i]>nums[j]){
    18                     nums[j] = nums[j-1];
    19                     j--;
    20                 }
    21                     
    22                 nums[j] = a[i];
    23                 
    24             }
    25         }
    26         
    27         return nums;
    28         
    29     }
  • 相关阅读:
    qt一些函数
    js时间字符串转时间戳
    golang学习之interface与其它类型转换
    golang学习之奇葩的time format
    windows下安装mongodb
    golang学习之struct
    golang学习之闭包
    js生成6位随机码
    golang学习之生成代码文档
    moment常用操作
  • 原文地址:https://www.cnblogs.com/kirachen/p/4614801.html
Copyright © 2020-2023  润新知