`
k1280000
  • 浏览: 203736 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个程序题(把1...2..3...100以长度为3等分然后。。。。)

阅读更多
  网上看到的一个程序题
以下是我的做法,请大家多多指教!


package com.james.basic;

public class Divide {

	/**
	 * 有一百个数1,2,3,4,5,.......100现在要把它们以3为等分分成如下
	 * {1,2,3}{4,5,6}{7,8,9}......{97,98,99},{100}
	 * 我们得到34个大括号
	 * 然后计算大括号里面的三个数的和,得到
	 * 6,15,........................100再把这34个数以以3为等分
	 * 一直到最后只留下一个数即 这100个数的总和
	 * 
	 */
	
	//以3为基数划分   
	//                                  此处length为基数
	public int[] divide (int [] a , int length){
		int b [] =null;
		
		//首先判断数组a与所要等分的基数的大小
		if(a.length<length){
				b = new int [1];
				b[0]=sumSubarray(a,a.length,0);
			
		}else if(a.length>=length){
			int div = 0;		//the number groups be divided by the length 
			
			//判断a.length是否是可以整除基数length
			if(a.length%length==0){
				div = a.length/length;
				b = new int [div];
				for(int j=0;j<div;j++){
//					System.out.println(j);
					b[j] = sumSubarray(a,length,j*length);
				}
				divide(b,length);     //递归调用
			}
			//不可被整除的话要区别对待
			else if(a.length%length!=0){
				div = a.length/length+1;
				b = new int [div];
				for(int j=0;j<div-1;j++){
					b[j] = sumSubarray(a,length,j*length);
				}
				
				//此处为区别对待
				int k=a.length-(div-1)*length;
				b[div-1]= sumSubarray(a,k,(div-1)*length);
				divide(b,length);      //递归调用
			}
			
			
		}
		return b;
	}
	
	
	//计算数组b内以start为开始,长度为length1(就是length1个数的和)的和
	public int sumSubarray (int b[],int length1,int start){
		int subsum = 0;
		int k = start;
		for(; k<(length1+start); k++){
			System.out.println("the start is  :  "+k);
			subsum += b[k];
		}
		return subsum;
	}
	
	public static void main(String[] args) {
		Divide d = new Divide ();
		int [] a ={1,2,3,4,5,6,7,8,9,10};
		int c []=d.divide(a, 3);
		int k=d.sumSubarray(c, c.length, 0);
		System.out.println("\n"+"the terminal result is : "+k);
			
	}

}



分享到:
评论

相关推荐

    世界500强面试题.pdf

    1.3.7. n 个数字(0,1,…,n-1)形成一个圆圈 .................................................. 53 1.3.8. 定义 Fibonacci 数列 ...............................................................................

    标准C语言程序设计及应用习题及答案.pdf

    1. C语言中,编写一个程序来计算字符串的长度?(Answer: 使用 strlen 函数) 2. C语言中,编写一个程序来实现字符串的拷贝?(Answer: 使用 strcpy 函数) 总结 本资源涵盖了C语言的基础知识和应用实践,包括...

    python基础试题(含答案)word.doc

    1. Python语法错误识别:在提供的选择题中,第一题是一个简单的Python程序,其中包含了几个常见的错误。程序如下: ```python 1a=3 b=input() c=a+b print("c") ``` 这个程序的错误在于: - 变量名不能以数字开头,...

    Vb程序设计试题.pdf

    1. 给定的程序是一个用户身份验证的示例。如果用户输入的用户名在数组UserName中存在,则显示欢迎信息。当输入"LiMing"时,程序会找到匹配项,Flag设为True,最后显示"欢迎您!LiMing先生"。 2. 第二个程序段不完整...

    第2章 MATLAB数据及其运算-习题答案.docx

    4,5,6]定义了一个3×3的矩阵,A(3)指的是第三行第一个元素,即6。 5. a(:,end): - 在3×3矩阵a中,a(:,end)表示第三列的所有元素。 6. a(1)=[]: - 这个操作会将矩阵a的第一行设置为空,使其变为2行3列的矩阵。...

    B题_同轴电缆长度与终端负载检测装置.pdf

    【同轴电缆长度与终端负载检测装置】是2023年全国大学生电子设计竞赛本科组的B题,旨在设计一款能检测同轴电缆长度和终端负载的设备。该装置需具备显示工作状态、电缆长度、负载类型以及负载参数的功能,并能满足...

    c语言程序设计教程书后练习题答案.docx

    2. 一个字节包含8个二进制位,能存储的无符号最大十进制整数是255,带符号的是127,最小是-128,对应的二进制形式是10000000。十进制30的八进制表示为036,十六进制为0x1e,二进制表示为11110。 3. C语言表达式`x&gt;20...

    C语言程序设计任务驱动式教程(第2版)(微课版)-配套习题.doc

    C语言是高级语言,程序由一个或多个函数构成,从main函数开始执行,语句以分号结束,注释可以是多行或单行,且不影响程序的编译和运行。标识符的命名规则规定,它们必须以字母或下划线开头,后续可跟字母、数字或...

    程序设计基础试题附答案.docx

    4. 编写一个程序,输入h值,输出h行的等腰三角形,可以使用嵌套循环实现,外层循环控制行数,内层循环控制每行的星号个数。 5. "百钱百鸡问题"的解决方案可以通过穷举法实现,设立三个变量分别表示公鸡、母鸡和小鸡...

    C语言100经典小程序

    1. **素数判定:** 通过循环和条件判断检查一个数是否为素数。 2. **动态数组填充:** 将找到的素数存入数组,直至达到指定数量。 3. **循环优化:** 仅需检查到数的平方根即可确定其是否为素数。 **代码解析:** `...

    大学《Python程序设计》试题及答案.docx

    7. `eval('[1, 2, 3]')` 创建并返回一个包含整数的列表 `[1, 2, 3]`。 8. `math.sqrt(4)` 用于计算4的平方根,结果是 `2.0`。 9. `random.choice(x)` 从列表 `x` 中随机选取一个元素,这个元素肯定在列表内,所以 ...

    大一VB语言程序期末考试题及答案.doc

    10. VB语言中,x=2时,表达式x+1&gt;2 Or sin(x)&gt;0.9 And 3&gt;x+3的值为True。 11. VB语言中,随机产生[10,50]之间整数的正确表达式是Int(Rnd*41)+10。 12. VB语言中,每建立一个窗体,工程管理器窗口中就会增加一个...

    免费下载上海交大2011-2012程序设计python期末考试题.pdf

    在本题中,`%d`是格式化字符串的一部分,表示输出整数部分,`%%`是输出一个百分号`%`。所以表达式`'%d%%%d' %(3 / 4, 3 % 4)`的结果会是`'0%%3'`,因为3除以4的小数部分为0,3对4取余的结果是3。 2. Python 保留字...

    \C++\试题\试题一.doc

    逻辑或(||)操作符会返回第一个非零值,所以x先加上a或b中的非零值,然后执行c++和++x,无论结果如何,x最后至少加1,所以x=1。 5. 输入 D F,则变量 a,b 的值是D. a 不定;b=0。由于 cin&gt;&gt;a&gt;&gt;b; 是按照空格、制表符...

    C语言程序设计模拟试题A附答案.docx

    正确的解释是,C语句必须以分号结束,但不是任何一个C程序中都有且只有一个主函数。复合语句在语法上可被看作一条语句,但是C程序中对数据的任何操作都不能完全由运算符实现。 2. 不能定义为用户标识符的是(C)。...

    大学《Python程序设计》试题及答案.pdf

    7. **列表创建**:`eval('[1, 2, 3]')`创建并返回一个包含三个元素的列表。 8. **标准库**:`math.sqrt()`用于计算平方根,如`eval('math.sqrt(4)')`的结果是`2.0`。 9. **随机模块**:`random.choice(x)`从列表`x...

    vb语言程序设计考试题(一).docx

    VB语言程序设计考试题主要涵盖了VB的基础语法、运算符优先级、字符串处理、随机数生成、程序控制结构、变量命名规则以及表达式的计算等多个方面。以下是这些题目涉及的知识点的详细解释: 1. `len(str(k))` 计算...

    C++程序设计:习题.ppt

    4. 字符串长度:字符串`"\\\"BBB\123\xbb\t"`包含一个转义字符`\`、一个双引号`"`、一个字面量`BBB`、一个八进制转义序列`\123`(代表字符'S')、一个十六进制转义序列`\xbb`(代表字符'bbe')和一个制表符`\t`。...

Global site tag (gtag.js) - Google Analytics