结对开发4----最大子数组(大数溢出)
结对成员:范德一,赵永恒
一.题目:
返回一个整数数组中最大子数组的和。
二.要求:
要求程序必须能处理1000 个元素;
每个元素是int32 类型的;
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。
三.设计思路
在上一次的实验中,我们设置的数组的个数能够很好的进行扩展,所以对于第一个要求处理1000个元素比较容易实现;对于第二个要求,我们主要是想确定最大的数到底有多大,即什么时候会发生溢出的问题,当问题出现时程序怎么处理,通过查阅资料,我们最后确定了程序能够处理的最大数的取值,然后通过输出语句提示数组溢出。
四.源代码
1 #include<iostream.h> 2 3 #include<time.h> 4 5 #include<stdlib.h> 6 7 8 9 int main() 10 11 { 12 13 14 15 srand((unsigned)time(NULL)); 16 17 18 19 int a[1000]; 20 21 int m; //m是每组个数 22 23 int *sum=new int[1000]; 24 25 cout<<"*********************************"<<endl; 26 27 for(int i=0;i<1000;i++) 28 29 { 30 31 int b; 32 33 b=rand()%2; 34 35 switch (b) 36 37 { 38 39 case 0: 40 41 a[i]=rand()*350; 42 43 break; 44 45 case 1: 46 47 a[i]=-rand()*100; 48 49 break; 50 51 } 52 53 cout<<a[i]<<" "; 54 55 if((i%10)==9) 56 57 cout<<endl; //每行10个输出,换行 58 59 60 61 } 62 63 64 65 cout<<"*********************************"<<endl; 66 67 int he=0; 68 69 for(m=1;m<1001;m++) 70 71 { 72 73 int temp=0; 74 75 for(int n=0;n<m;n++) 76 77 { 78 79 temp=temp+a[n]; 80 81 } 82 83 for(int k=0;k<=(1000-m);k++) 84 85 { 86 87 sum[k]=0; 88 89 for(int j=k;j<(k+m);j++) //a[k]是每组第一个数 90 91 { 92 93 sum[k]=sum[k]+a[j]; 94 95 } 96 97 if(sum[k]>temp) 98 99 { 100 101 temp=sum[k]; 102 103 } 104 105 } 106 107 if(temp>he) 108 109 { 110 111 he=temp; 112 113 } 114 115 } 116 117 if(he>2100000000) 118 119 { 120 121 cout<<"数组溢出!"<<endl; 122 123 } 124 125 else 126 127 { 128 129 cout<<"最大子数组的和为: "<<he<<endl; 130 131 } 132 133 cout<<"*********************************"<<endl; 134 135 return 0; 136 137 }
五.运行截图
六、感想
这次实验在随机出现数的那里我们停留了很长时间,主要是不知道rand函数也是有取值范围的。在接组的开发中,我们都有一点自己的想法。最后总结在了一起,尤其是在编程的过程中,我们谁都想往上写一点,一个程序总是在加入自己的设计思路和代码的风格。我觉得一个团队还是应该把风格和规范尽量的一致,才能让团队更好的工作起来。
附:
转载于:https://www.cnblogs.com/fan123/p/4376537.html
结对开发4----最大子数组(大数溢出)相关推荐
- 结对开发——一维数组最大子数组判断溢出
一 题目 求一维数组最大子数组和 要求:1000个数以上,整数 二.设计思路 最大子数组很好找到,但是子数组和的溢出问题很难解决. 经过不断的思考,我得出了结论: 溢出是程程序设计者设计时的不足所带来 ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
- 结对开发--求二维数组的最大子数组
小组成员:信1201-1班 黄亚萍 信1201-1班 袁亚姣 一.题目要求 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, ...
- 结对开发——返回一个整数数组中最大子数组的和
一.题目要求 1.输入一个整型数组,数组里有正数也有负数. 2.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为O(n). 二.设计思想 ...
- 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)
题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...
- 结对开发项目:求整数数组中连续子数组和的最大值
小组成员:安娜 王鑫楠 题目二:求整数数组中连续子数组和的最大值. 1.分析过程: 题目收到后,前五分钟设计算法,首先也想到是不是一次遍历可以解决,考虑了一下觉得难度有点大最后还是果断放弃.我刚开始的 ...
- 结对开发 随机产生数组并求最大子数组的和
一.题目 返回一个整数数组中最大子数组的和. 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O( ...
- 结对开发2(求二维数组的最大子数组和)
一,题目要求: 输入一个二维数组,求出此二维数组的最大子数组和. 二,设计思路: 利用for循环进行遍历,求出数组中每一个子数组的和,最终求出这些子数组的最大的一个值.程序中利用了调用函数,被调函数分 ...
- 结对开发——环形一维数组求最大子数组和
题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[ ...
最新文章
- 《iOS 8应用开发入门经典(第6版)》——第1章,第1.6节小结
- 用MATLAB作图像识别所需要注意的细节!
- Visdom数据可视化工具绘制Loss曲线
- Divan and Kostomuksha (easy version) dp,gcd(2100)
- LeetCode119.杨辉三角II
- Tomcat 下 Memcached 集群与 Terracotta 集群比较
- codeforces 231A-C语言解题报告
- 什么是Hystrix,Hystrix简单概述
- 转:C#读取PDF、TXT内容
- 分布式事务解决方案之可靠消息最终一致性
- 【python教程入门学习】拒绝反爬虫!教你搞定爬虫验证码
- SICP 练习1.8
- centos/redhat kernel-debug-info-xx.rpm与kernel-debuginfo-xx.rpm区别
- 今日头条(App和MainActivity类)
- mysql 字符串截取,拼接
- Android(cacerts.bks)添加根证书
- java8 .map是什么意思_JDK8 stream().map() 作用
- 基于jeecgboot的支持flowable的排它网关之后的会签功能(二)
- 图片循环滚动代码(无缝滚动)
- bootstrap rol 的作用
热门文章
- html编写组织结构,编写模块化的CSS:CSS文件组织结构
- java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解
- Kubernetes 核心概念
- 回顾 | Alibaba Cloud Native Day 杭州场圆满结束(附 PPT 下载)
- 深圳快测计算机技术有限公司,口罩快速检测出数据口罩快检预检办理
- python包导入细节_python循环导入是一个实现细节吗?
- python35是什么意思_python -m是什么意思CentOS 升级 Python3 (附带: 一键升级脚本)...
- @autowired注解原理_相见恨晚,一个架构师也不会用的Lombok注解
- java jxl map,jxl操作Excel
- centos 一键安装ftp 配置_CentOS快速搭建FTP(初级-四步)