网上看到的一个程序题:
以下是我的做法,请大家多多指教!
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);
}
}
分享到:
相关推荐
1.3.7. n 个数字(0,1,…,n-1)形成一个圆圈 .................................................. 53 1.3.8. 定义 Fibonacci 数列 ...............................................................................
1. C语言中,编写一个程序来计算字符串的长度?(Answer: 使用 strlen 函数) 2. C语言中,编写一个程序来实现字符串的拷贝?(Answer: 使用 strcpy 函数) 总结 本资源涵盖了C语言的基础知识和应用实践,包括...
1. Python语法错误识别:在提供的选择题中,第一题是一个简单的Python程序,其中包含了几个常见的错误。程序如下: ```python 1a=3 b=input() c=a+b print("c") ``` 这个程序的错误在于: - 变量名不能以数字开头,...
1. 给定的程序是一个用户身份验证的示例。如果用户输入的用户名在数组UserName中存在,则显示欢迎信息。当输入"LiMing"时,程序会找到匹配项,Flag设为True,最后显示"欢迎您!LiMing先生"。 2. 第二个程序段不完整...
4,5,6]定义了一个3×3的矩阵,A(3)指的是第三行第一个元素,即6。 5. a(:,end): - 在3×3矩阵a中,a(:,end)表示第三列的所有元素。 6. a(1)=[]: - 这个操作会将矩阵a的第一行设置为空,使其变为2行3列的矩阵。...
【同轴电缆长度与终端负载检测装置】是2023年全国大学生电子设计竞赛本科组的B题,旨在设计一款能检测同轴电缆长度和终端负载的设备。该装置需具备显示工作状态、电缆长度、负载类型以及负载参数的功能,并能满足...
2. 一个字节包含8个二进制位,能存储的无符号最大十进制整数是255,带符号的是127,最小是-128,对应的二进制形式是10000000。十进制30的八进制表示为036,十六进制为0x1e,二进制表示为11110。 3. C语言表达式`x>20...
C语言是高级语言,程序由一个或多个函数构成,从main函数开始执行,语句以分号结束,注释可以是多行或单行,且不影响程序的编译和运行。标识符的命名规则规定,它们必须以字母或下划线开头,后续可跟字母、数字或...
4. 编写一个程序,输入h值,输出h行的等腰三角形,可以使用嵌套循环实现,外层循环控制行数,内层循环控制每行的星号个数。 5. "百钱百鸡问题"的解决方案可以通过穷举法实现,设立三个变量分别表示公鸡、母鸡和小鸡...
1. **素数判定:** 通过循环和条件判断检查一个数是否为素数。 2. **动态数组填充:** 将找到的素数存入数组,直至达到指定数量。 3. **循环优化:** 仅需检查到数的平方根即可确定其是否为素数。 **代码解析:** `...
7. `eval('[1, 2, 3]')` 创建并返回一个包含整数的列表 `[1, 2, 3]`。 8. `math.sqrt(4)` 用于计算4的平方根,结果是 `2.0`。 9. `random.choice(x)` 从列表 `x` 中随机选取一个元素,这个元素肯定在列表内,所以 ...
10. VB语言中,x=2时,表达式x+1>2 Or sin(x)>0.9 And 3>x+3的值为True。 11. VB语言中,随机产生[10,50]之间整数的正确表达式是Int(Rnd*41)+10。 12. VB语言中,每建立一个窗体,工程管理器窗口中就会增加一个...
在本题中,`%d`是格式化字符串的一部分,表示输出整数部分,`%%`是输出一个百分号`%`。所以表达式`'%d%%%d' %(3 / 4, 3 % 4)`的结果会是`'0%%3'`,因为3除以4的小数部分为0,3对4取余的结果是3。 2. Python 保留字...
逻辑或(||)操作符会返回第一个非零值,所以x先加上a或b中的非零值,然后执行c++和++x,无论结果如何,x最后至少加1,所以x=1。 5. 输入 D F,则变量 a,b 的值是D. a 不定;b=0。由于 cin>>a>>b; 是按照空格、制表符...
正确的解释是,C语句必须以分号结束,但不是任何一个C程序中都有且只有一个主函数。复合语句在语法上可被看作一条语句,但是C程序中对数据的任何操作都不能完全由运算符实现。 2. 不能定义为用户标识符的是(C)。...
7. **列表创建**:`eval('[1, 2, 3]')`创建并返回一个包含三个元素的列表。 8. **标准库**:`math.sqrt()`用于计算平方根,如`eval('math.sqrt(4)')`的结果是`2.0`。 9. **随机模块**:`random.choice(x)`从列表`x...
VB语言程序设计考试题主要涵盖了VB的基础语法、运算符优先级、字符串处理、随机数生成、程序控制结构、变量命名规则以及表达式的计算等多个方面。以下是这些题目涉及的知识点的详细解释: 1. `len(str(k))` 计算...
4. 字符串长度:字符串`"\\\"BBB\123\xbb\t"`包含一个转义字符`\`、一个双引号`"`、一个字面量`BBB`、一个八进制转义序列`\123`(代表字符'S')、一个十六进制转义序列`\xbb`(代表字符'bbe')和一个制表符`\t`。...