转自:http://blog.csdn.net/shandianling/article/details/8785269

问题描述:两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
要求:

1.不准用除法运算

2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)

3.满足时间复杂度O(n),空间复杂度O(1)

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3
 4 void pr_arr(int s[],int len)
 5 {
 6     for(int i = 0 ; i <= len - 1 ; i++)
 7     {
 8         printf("%d \n",s[i]);
 9     }
10 }
11 int main()
12 {
13    int a[]={2,3,7,23,6,5,1,23,89,23};
14     int *b=(int*)malloc(sizeof(a));
15     b[0]=1;
16     int len=sizeof(a)/sizeof(int);
17     int j,i;
18     for( i=1;i<len;i++)
19     {
20         b[i]=b[i-1]*a[i-1];
21     }
22     for(j=len-2;j>=1;j--)
23     {
24         b[0]*=a[j+1];
25         b[j]*=b[0];
26     }
27     b[0]*=a[1];
28     pr_arr(b,len);
29     return 0;
30 }
31   

[cpp] view plaincopy
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void pr_arr(int *s,char len)
  4. {
  5. while(len--)
  6. {
  7. printf("%d \n",*s++);
  8. }
  9. }
  10. int main()
  11. {
  12. int a[]={2,3,7,23,6,5,1,23,89,23};
  13. int *b=(int*)malloc(sizeof(a));
  14. b[0]=1;
  15. int len=sizeof(a)/sizeof(*a);
  16. int j,i;
  17. for( i=1;i<len;i++)
  18. {
  19. b[i]=b[i-1]*a[i-1];
  20. }
  21. for(j=len-2;j>=1;j--)
  22. {
  23. b[0]*=a[j+1];
  24. b[j]*=b[0];
  25. }
  26. b[0]*=a[1];
  27. pr_arr(b,len);
  28. return 0;
  29. }
本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3171558.html,如需转载请自行联系原作者

两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];...相关推荐

  1. 请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同...

    最笨的办法当然是二层嵌套循环,但觉得应该有更好的方法,但是着实想不出来,想听听大家的意见,大家帮帮小弟 i.e string[] A={"X","Y",&quo ...

  2. LeetCode 2035. 将数组分成两个数组并最小化数组和的差(状态压缩DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个长度为 2 * n 的整数数组. 你需要将 nums 分成 两个 长度为 n 的数组,分别求出两个数组的和,并 最小化 两个数组和之 差的绝对值 ...

  3. 力扣题目——350. 两个数组的交集 II

    注:本文的实现思路主要是基于JS(JavaScript),涉及到的一些函数都是JS中的自带函数 题目描述 给定两个数组,编写一个函数来计算它们的交集. 输入示例 输入:nums1 = [1,2,2,1 ...

  4. LeetCode 2035. 将数组分成两个数组并最小化数组和的差

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.算法详解 3.时间复杂度 4.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你一个 ...

  5. LeetCode简单题之两个数组的交集 II

    题目 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集.返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值).可以不考 ...

  6. Java合并两个int数组合并_Java中如何把两个数组合并为一个

    在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁,却还是值得思考的.这里介绍四种方法,请参考选用. 一.apache-commons 这是 ...

  7. 两个数组的交集 II

    两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 ...

  8. 349.两个数组的交集

    做法基本两种 一是用java的set来做 二是用排序+二分/双指针来做 实现2 排好序了,可以比较下两个数组的最大值,最小值,看看是否有解,在大量数据的时候可以剪枝. int max1,max2,mi ...

  9. 数组-两个数组的交集(两个集合)

    题意: 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5] ...

最新文章

  1. 一文看懂机器视觉芯片
  2. NUMBER_GET_NEXT 获取编号年度问题
  3. pod 的亲和性,反亲和性 实验
  4. Junit单元测试学习笔记一
  5. 读《redis设计与实现》笔记--redis数据结构
  6. 前亚马逊中国总裁王汉华出任好耶CEO
  7. 字符串匹配——C++使用Regex
  8. 如何更方便地将谷歌翻译导入到Goldendict
  9. 3.Java垃圾回收机制面试题
  10. 微信第三方授权获取用户信息
  11. 饭店计算机信息管理全章ppt,酒店信息质量管理.ppt
  12. 物联网云平台应用于远程污水在线检测
  13. H.264与x264的区别
  14. 10分钟教你用Python实现微信翻译机器人
  15. 计算机硬盘中了病毒处理方式,电脑硬盘被病毒加密如何解决 电脑硬盘被病毒加密的解决方法...
  16. blender中旋转问题(A绕B的中心旋转)
  17. 【计算机网络】第四部分 网络层(20) IP协议
  18. MWC 2017小结:各家新机缺乏创新,5G落地尚需时日
  19. 错误信息was not declared in this scope
  20. 二维码读取之ecc200_contrast_tolerance.hdev

热门文章

  1. 团队行为心理学读书笔记(8)绩效考核背后的行为心理学
  2. Unity HDRP渲染管线基础指南
  3. 可视化caffe模型结构及在线可视化
  4. VC 2010下安装OpenCV2.4.4
  5. CVE-2009-3459
  6. UIProgressView 圆角
  7. 设计理念 : popup login 在前后台
  8. SQL Server聚集索引的选择
  9. GARFIELD@02-24-2005
  10. js高级—tab栏切换(面向对象做法)