前些天参加一些程序算法竞赛的时候,被一个小问题困扰了很久;
一个在高中时候学等差等比数列时候很简单的问题,即访问每次按自然数1,2,3,4,5,6,…递增下标的值的问题。
那么如何进行访问数组下标中按自然数递增的值问题:
例如:有数列如下:
1,2,3,4,5,6,7,8,9,10,…
第一次我需要访问第一位的值,即为1;
第二次的时候我需要访问第三位的值,即为3,在第一步访问第一位值的时候跟第二次访问的值已经相差了一个位置;
第三次我需要访问第六位的值,即为6;这一次访问的值与第二次访问的值相差了2个位置;
第四次我需要访问第十位的值,即为10,而这一次访问的值与第三次访问值的位置相差了3个位置;
如此进行下去……
下面给出算法代码:
private static int[] hose = {1,2,3,4,5,6,7,8,9,10}; //数组
……
public static void find(){
int add = 0; //辅助变量
for(int i = 0; i <100;i++ ){
System.out.println(hose[(i)%10]);
add++;
i=i+add;
}
}
同时这里需要理解for循环的执行过程,先初始化,再比较迭代变量的值是否小于或者是大于,如果符合则执行循环体中的代码,最后是要将迭代变量的值自增;
上面的for循环等价于下面的:
public static void find(){
int add = 0;
for(int i = 0; i <MAX; ){
System.out.println(hose[(i)%10]);
add++;
i++ ;
i=i+add;
}
}
算法或者代码如果有错误或者不好的地方,敬请指出,让我们一起进步,谢谢~
分享到:
相关推荐
在本资源中,还提供了一个实践例程,演示了如何使用一维数组来存储自然数1~20,然后按逆序分两行输出元素值,在一行上输出所有下标为偶数的数组元素,在一行上输出所有值为偶数的数组元素。 在本资源的最后部分,...
字符串数组的每个字符占据一个元素位,在数组中元素所处的位置用自然数标识。 字符串数组的操作包括字符串的连接、查找、替换等。字符串的连接可以使用`strcat`函数,例如:`Aa = [A, a]`将字符串`A`和`a`连接成一...
对于上述的55个自然数,如果我们想要将其填充到11行的二维数组中,可以使用`reshape`方法。`a.reshape(rows, -1)`会将数组`a`重塑为`rows`行,其中`-1`表示让Numpy自动计算列数以保持总元素数量不变。所以,`a....
如下所示自然数递增,且每行数字的列数也递增,第一行 1 个数字 (1),第二行 2 个数 字 (2 ,3 ),以此类推,试编程找出规律、输出第 66 行的后 10 个数字内容。要求输出项保 持原顺序。
5. **找到最小和最大值**:可以快速找出数组中的最小值和最大值,以了解数据的范围。 标签 "源码 工具" 提示我们可能需要编写代码来解决这个问题,并且可能会使用一些辅助工具或库函数。在实际编程中,我们可能会...
问题:在一个数组中(数组中的元素要输入),寻找其中的素数,并将其排序,再以数组的形式输出。
本文档主要介绍C语言程序设计中的数组应用,特别是对一维数组的定义、初始化、元素访问和应用。下面是根据给定的文件信息提取的知识点: 一、数组定义 * 一维数组定义语法形式为:类型名 数组名 [常量表达式]; * ...
在这个主题中,我们主要关注三个方面:类型级别的自然数、布尔值以及向量(数组)大小。这些概念在JavaScript开发中并不常见,因为JavaScript是一种动态类型语言,但在Purescript这样的函数式编程语言中,它们是关键...
- 否则,进入内层循环,从`i+i`开始,每次增加`i`的值,直到超过数组边界。 - 内层循环中,如果遇到未被标记为非素数的数,则将其标记为非素数(即赋值为1)。 3. **输出结果**: ```c for (i = 2; i ; i++) {...
1. **数组**:数组是编程中最基本的数据结构之一,它允许我们在内存中存储一组具有相同类型的数据。在大多数编程语言中,数组的大小在声明时是固定的,例如在这里我们声明了一个可以存放100个整数的数组。 2. **...
- 遍历 \( 1 \) 至 \( n \),将每个数字按位数拆分并存储到 `b` 数组中。 - 使用 `count` 变量来跟踪当前筛选轮次,并通过 `kill` 记录已经移除的数字数量。 - 使用 `s` 变量来标记当前应该移除的是偶数位置还是...
3. **统计奇数个数**:在这个例子中,定义了一个10个元素的整型数组`num`,并要求用户输入10个自然数。然后,通过遍历数组,检查每个元素是否是奇数(即元素除以2的余数不等于0),并将计数器`count`加1。最后输出...
递增数列是每一项都大于前一项,递减数列则相反,常数列中每一项都相等,而摆动数列则有时增加有时减少。 数列的通项公式是描述数列中第n项与序号n之间关系的表达式,例如等差数列an = a1 + (n - 1)d,这里的a1是首...
在第二个题目中,我们可以看到数列{an}的前n项和Sn,可以通过计算an的值然后求和来获得。 在第三个题目中,我们可以看到数列{an}的前n项和Sn,可以通过计算an的值然后求和来获得。 在第四个题目中,我们可以看到...
在大多数编程语言中,数组可以通过索引来访问其元素,索引通常从0开始。例如,在Python中,我们可以声明一个整数数组如下: ```python numbers = [23, 45, 37, 18, 91, 67, 89, 2, 11, 50] ``` 接下来,我们需要...
每个数列的项an对应于自然数n的函数值。因此,数列的图像是由孤立的点组成,这些点在直角坐标系中按照n的顺序排列。 3. **数列的性质**: - **递增数列**:如果an 对于所有n都成立,那么数列是递增的。 - **递减...
例如,题目中的an = 3n - 2,这样的数列形成的图像是一群孤立的点,因为在n属于自然数的情况下,每一项都是离散的。而数列an = -n^2 + 10n + 11,通过配方可以发现它的最大值出现在n = 5的时候,因此数列中第5项最大...
该定理说明了对于任何实数域上的单调递增且上界数列,其必定会收敛到一个极限值。为了深入理解这个定理及其证明过程,我们需要明确几个数学概念: 1. 数列:数列是一个函数,其定义域为自然数集,值域为实数集或...
2. 遍历数组,从2开始,如果当前数字是质数(即数组中的`True`),则将其所有倍数标记为非质数(将对应索引的数组元素设为`False`)。这是因为除了1和它本身,没有其他因数的数是质数。 3. 继续遍历,直到最大的候选...
数列极限是高等数学中的基础概念,它涉及到数学分析、实变函数等理论数学的核心内容,同样在理工科领域的应用数学中占有重要地位。数列极限的概念源远流长,其中古代中国学者刘徽的“割圆术”为理解极限思想提供了...