❶ 用JS代码实现给定一个数组,[1,2,3,4,5,6,7,8,9],分别求它们的立方。
var arr1 = [1,2,3,4,5,6,7,8,9];
var arr = arr1.map(function(item,index,array){
return item*item*item;
})
返回的新数组arr则是元素立方运算后的新数组
❷ c++程序设计题:定义一个股票类(stock)对象数组,存放连续5个交易日的股票信息,计算股票涨幅。
#include<iostream>
usingnamespacestd;
intmain()
{
doublestock[5];//定义长度为5的数组存放用户输入的股票价格
for(inti=0;i<5;i++)
{
cin>>stock[i];
}//循环读入用户输入的股价
doublepercent=(stock[4]-stock[0])*100;
cout<<"涨幅:"<<percent<<"%"<<endl;
return0;
}
❸ 一个算法题目 给定一个数组其每个元素都是正数,和一个给定值M,求所有连续的子数组其和可以整除M
假设数组为a,有n个元素。
假设prefix[i]是a数组的前i个元素的和,令prefix[0] = 0。
如果prefix[j]%M == prefix[i]%M(其中0 <= j < i <= n),则a[j+1 ~ i]的和能被M整除。
于是对于每个i,可以用个表之类的数据结构快速找出它之前有多少个prefix[j]%M和prefix[i]%M相等,每次查找和更新的复杂度大约是O(1)的。
如果M比较小的话可以直接开个数组存之前prefix[j]%M出现了几次,复杂度是O(n + M)的。
如果M比较大,可以用二叉树或者哈希表存之前出现的prefix[j]%M出现了几次,因为这个值最多有O(n)种可能性,复杂度分别是O(n*log(n))和O(n)的。
如果需要记录有那些连续子数组,只要在表里记录一下有那些j就行了。
/*O(n+M)的算法*/
intwork(vector<int>a,intM){
vector<int>b(M,0);
b[0]=1;
intprefix=0,ans=0;
for(vector<int>::iteratorit=a.begin();it!=a.end();++it){
prefix=(prefix+*it)%M;
ans+=b[prefix];
b[prefix]+=1;
}
returnans;
}
❹ 在java中,给定一个数组(2,4,1,6,0,8,2,6,0,3,8,6,7,4,2,1),请
public static void count()
{
int[] a = {2,4,1,6,0,8,2,6,0,3,8,6,7,4,2,1};
Map<Integer, Integer> countMap = new HashMap<Integer, Integer>();
for (int i = 0; i < a.length; i++)
{
if (countMap.get(a[i]) == null)
{
countMap.put(a[i], 1);
}
else
{
countMap.put(a[i], countMap.get(a[i]) + 1);
}
}
System.out.println(countMap.toString());
}
如果是每个数的个数
❺ 编程实现,给定一个一维数组,计算并输出此数组(长度为9)中每相邻两
#include<stdio.h>
intmain()
{
inta[9];
doubler=0;
inti;
for(i=0;i<9;i++)
scanf("%d",&a[i]);
for(i=0;i<8;i++)
r+=sqrt((a[i]+a[i+1])/2.0);
printf("%lf ",r);
return0;
}
❻ 给定一个数组(0-9) 2,4,1,6,0,8,9,2,6,0,3,8,6,7,4,2,1],请统计出每个数的出现次数
vb6.0代码如下:
Private Sub Form_Load()
Dim a() As String
a = Split("2,4,1,6,0,8,9,2,6,0,3,8,6,7,4,2,1", ",")
Dim b(9) As Integer
For i = 0 To UBound(a)
b(Val(a(i))) = b(Val(a(i))) + 1
Next
For i = 0 To 9
s = s & "数字:" & i & " 次数:" & b(i) & vbCrLf
Next
MsgBox s
End Sub
❼ 给定一个数组,把这个数组所有元素顺进行颠倒
package com.tarena.day10;import java.util.Arrays;public class Test1 { public static void main(String[] args){
int[] ary = {1,2,3,4,5,6,7};
System.out.println(Arrays.toString(reverseArray(ary)));
System.out.println(Arrays.toString(reverseArray1(ary)));
}
// 方法一:(时间复杂度: T(n) = T(7); 空间复杂度: O(n) = O(7))
public static int[] reverseArray(int[] ary){
int[] x = new int[7];
int j = 0;
for(int i = ary.length - 1; i > -1; i --){
x[j++] = ary[i];
}
return x;
}
// 方法二:(时间复杂度: T(n) = T(3); 空间复杂度: O(n) = O(1))
public static int[] reverseArray1(int[] ary){
int temp;
for(int i = ary.length - 1; i > 3; i--){
temp = ary[i];
ary[i] = ary[ary.length - 1 - i];
ary[ary.length - 1 - i] = temp;
}
return ary;
}
}
❽ 给定一个数组,计算各元素之和 用Java编写代码
按照你的要求编写的给定一个数组,计算各元素之和的Java程序如下
publicclassAA{
publicstaticvoidmain(String[]args){
inta[]={1,0,2,6,8,8,7,8,2};
intsum=0;
for(inti=0;i<a.length;i++){
sum=sum+a[i];
}
System.out.println("sum="+sum);
}
}
运行结果
sum=42
❾ 如何求给定一个数组,和为定值的组数最少
这个问题又称为“子集和问题”(也就是给定一个整数集合和一个定值,从一个集合中选取一个子集,使得子集中所有数的和等于给定的值,具体的可以网络,google 子集和问题),这是一个NP完全问题,不存在多项式时间的解,所以没有好的算法。