zoukankan      html  css  js  c++  java
  • 2.25号课堂测试

    对一维数组随机一段求和求最大

    package shuzi;
    import java.util.Scanner;
    
    public class Suzi {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
              System.out.println("请输入输入数字的个数");
              Scanner sc = new Scanner(System.in);
              int n,i;
              n=sc.nextInt();
              System.out.println("请输入输入"+n+"数字");
              int[] a = new int[n];
              for(i=0;i<n;i++)
              {
                  a[i]=sc.nextInt();
                  
              }
              for(i=1;i<n;i++)
                {
                    if(a[i]+a[i-1]>a[i])
                        a[i]=a[i]+a[i-1];
                }
              int ans=-100000;
                for(i=0;i<n;i++)
                {
                    if(ans<a[i])
                    {
                        ans=a[i];
                    }
                }
            
                System.out.println("最大的数为"+ans);
        
        }
    
    }

    对循环的一维数组进行求和,每个值只用一次

    package shuzi;
    
    import java.util.Scanner;
    
    public class Suzi
    {
        public static void main(String args[]) {
            Scanner scan=new Scanner(System.in);
            System.out.println("请输入个数");
            int n=scan.nextInt();
            int [] a=new int [n];
            int [] b=new int [n];
            int i,j = 0,k = 0;
            System.out.println("请输入数字");
            for(i=0;i<n;i++) 
            {
                a[i]=scan.nextInt();
                b[i]=a[i];
            }            
            for(i=1;i<n;i++)
            {
                if(a[i]+a[i-1]>a[i])
                {
                    a[i]=a[i]+a[i-1];
                    j=i;
                }else {
                    k=i;
                }
            }
            for(i=j+1;i<n;i++) {
                a[i]=a[i]+a[i-1];
            }
            for(i=0;i<k;i++) {
                if(a[n-1]+b[i]>a[n-1]) {
                    a[n-1]=a[n-1]+b[i];
                }
            }
            int ans=-100000;
            for(i=0;i<n;i++) {
                if(ans<a[i]) {
                    ans=a[i];
                }
            }
            System.out.println(ans);
        }
    }
  • 相关阅读:
    构建之法阅读笔记03
    构建之法阅读笔记02
    构建之法读书笔记01
    梦断代码读书笔记03
    背包九讲问题
    C-01背包问题
    C-最长回文子串(2)
    C-最长回文子串(1)
    C语言顺序栈实现
    带头结点头部插入创建链表
  • 原文地址:https://www.cnblogs.com/sunhongbin/p/12362747.html
Copyright © 2011-2022 走看看