c++设置数组a i j[b[i]]

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法
思路:B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]
先把A[0]*A[1]*...A[i]算出来,载乘以A[i-1]*A[i+1]*...*A[n-1]
class Solution {
vector&int& multiply(const vector&int&& A) {
int len = A.size();
vector&int&
if(len == 0)
res.push_back(1);
//B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]
//先把A[0]*A[1]*...A[i]算出来
for(int i = 0; i & len - 1; i++){
res.push_back(res[i] * A[i]);
int temp = 1;
//载乘以A[i-1]*A[i+1]*...*A[n-1]
for(int i = len - 1; i &= 0; i--){
temp *= A[i];
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!c++里这种表达式是什么意思a[i]=(b[i]==k)_百度知道
c++里这种表达式是什么意思a[i]=(b[i]==k)
我有更好的答案
数组 a 的第 i + 1 个元素的值会是 true 或者 false至于是什么,就看数组 b 的第 i + 1 个元素的值是否等于 k 了,如果是的话值就是 true,否则 false
采纳率:64%
为您推荐:
其他类似问题
表达式的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。点点滴滴的积累
将数组b合并到数组a中
//给定两个有序数组a和b,已知数组a末尾还有足够的空间容纳b,写一个函数将数组b合并到数组a中。
//n:数组a中的元素个数
//m:数组b中的元素个数
#include&iostream&
void merge(int a[],int b[],int n,int m)
int k=n+m-1;
int i=n-1;
int j=m-1;
while(i&=0&&j&=0)
if(a[i]&b[j])
a[k--]=a[i--];
a[k--]=b[j--];
while(j&=0)
a[k--]=b[j--];
void main()
int a[100]={0};
for(int i=0;i&n;i++)
cin&&a[i];
int b[]={2,6,8,9,11,15,20};
int m=sizeof(b)/sizeof(int);
merge(a,b,n,m);
for(int i=0;i&=n+m-1;i++)
if(a[i]!=0)
cout&&a[i]&&" ";
没有更多推荐了,晕了,怎样找出在数组A但是不在数组B的元素
[问题点数:100分,结帖人MagicFuzzX]
本版专家分:98
结帖率 100%
CSDN今日推荐
本版专家分:3809
本版专家分:3809
本版专家分:559
本版专家分:98
结帖率 100%
本版专家分:62
本版专家分:3809
本版专家分:98
结帖率 100%
本版专家分:62
本版专家分:30
本版专家分:47
本版专家分:4658
本版专家分:98
结帖率 100%
本版专家分:98
结帖率 100%
匿名用户不能发表回复!|
CSDN今日推荐用C++做。已知有两个整型数组A和B,求既在数组A中出现又在数组B中出现的数组元素的和_百度知道
用C++做。已知有两个整型数组A和B,求既在数组A中出现又在数组B中出现的数组元素的和
我初学C++。我是这样做的。但得不出答案。麻烦大家帮忙看下哪里有问题。谢谢。如果有更好的办法也请告诉我下。
#include &iostream&
int plus(char a[],char b[]);
int main()
char str1[50];
char str2[50];
...
额。尽量能够用到函数吧。还有就是如果数组中有重复的数据怎么样排除呢~~
我有更好的答案
#include&iostream&void main(){ int a[10],b[10],i,sum=0; cout&&&请输入数组a的值&&& for(i=0;i&10;i++)
cin&&a[i]; cout&&&请输入数组b的值&&& for(i=0;i&10;i++)
cin&&b[i]; for(i=0;i&10;i++) {
if(a[i]=b[i])
sum+=a[i];
} } cout&&&两数组中相同的数的和是:&&&sum&&}
采纳率:37%
1.你的方法不行,我帮你调试了一下,前面一个数组的值根本没有得到,所以谈不上以后的操作了,无论怎么样结果都是0;2.第二个你固定了50个数字,每次调试都需要输入50个数字,肯定是不可行的,这个数字应该由用户输入。我帮你写了一个,已经运行过了。#include &iostream&int plus(int a[],int m,int b[],int n);int main(){ int num1=5,num2=1; int *arr1,*arr2;
cout&&plus(arr1,3,arr2,3); return 0;}int plus(int *a,int m,int *b,int n){ a=new int[m]; for(int i=0;i&m;i++) {
cin&&a[i]; } b=new int[n]; for( int j=0;j&n;j++) {
cin&&b[j]; } int sum=0; for(i=0;i&m;i++) {
for(j=0;j&n;j++)
if(a[i]==b[j])
sum+=a[i];
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 一维数组 a i 的文章

 

随机推荐