尊宝国际娱乐APP下载

设为首页收藏本站

编程十万个为什么,属于程序员的编程论坛

 找回密码
 5秒快速注册
QQ登录 只需一步,快速开始
搜索
查看: 13327|回复: 19
打印 上一主题 下一主题

[C/C++每日一练] 2012年腾讯招聘实习生笔试题

[复制链接]
跳转到指定楼层
传说中的楼主
发表于 2012-4-11 18:49:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序的问题:已知数组a[n],求数组b[n].要求:b=a[0]*a[1]*……*a[n-1]/a,不能用除法。
a.时间复杂度O(n),空间复杂度O(1)。 b.除了迭代器i,不允许使用任何其它变量(包括栈临时变量等)
大家有什么解法?先不要看我下面的解法。
希望大家讨论讨论一下,留个言,一起交流一下。
下面给出我的解法一:
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.    
  4. #define N 10  
  5.    
  6. int main(){  
  7.         int a[N], b[N], i;  
  8.         for(i = 0; i < N; i++){  
  9.                a[i] = i + 1;  
  10.         }  
  11.          
  12.         b[0] = 1;  
  13.         for(i = 1; i < N; i++){  
  14.                b[i] = b[i - 1] * a[i - 1];  
  15.         }  
  16.          
  17.         for(i = N - 2; i > 0; i--){  
  18.                a[i] = a[i + 1] * a[i];  
  19.         }  
  20.          
  21.         for(i = 0; i < N - 1; i++){  
  22.                b[i] = b[i] * a[i + 1];  
  23.                printf("%d ", b[i]);  
  24.         }  
  25.         printf("\n");  
  26.         return 0;  
  27. }  
复制代码
这个解法把a数组里面的数据修改了,如果下次要用,就不行了。
给出修改版的:
解法二:
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.    
  4. #define N 10  
  5.    
  6. int main(){  
  7.         int a[N], b[N], i;  
  8.         for(i= 0; i < N; i++){  
  9.                a[i]= i + 4;  
  10.         }  
  11.          
  12.         b[0]= 1;  
  13.         for(i= 1; i < N; i++){  
  14.                b[i] = b[i - 1] * a[i - 1];  
  15.         }  
  16.          
  17.         for(i = N - 2; i > 0; i--){  
  18.                b[0] *= a[i + 1];  
  19.                b[i]*= b[0];  
  20.         }  
  21.         b[0] *= a[1];  
  22.         for(i = 0; i < N; i++){  
  23.                printf("%d ", b[i]);  
  24.         }  
  25.          
  26.         return0;  
  27. }  
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 !wechat_share!!wechat_share!
收藏收藏1 转播转播 分享分享 分享淘帖 顶一个顶一个 踩一下踩一下

BcWhy版权声明1、本帖可以任何形式转载到任何媒体,但必须带上本贴的URL连接,否则即视为同意支付 1000 元报酬
2、本主题所有言论和图片纯属夜影个人意见,与本论坛立场无关
3、本主题由该帖子作者夜影发表,该帖子作者夜影与本站享有帖子相关版权
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、本站管理员和版主有权不事先通知发贴者而删除本文

令人羡慕的沙发
发表于 2012-4-11 22:00:30 | 只看该作者
根据你的程序 你的要求是这个吧  b[i]=[0]*a[1]*……*a[n-1]/a[i]
由于本人水平不高,为了程序更有可读性,让我们这些新手更快了解这个程序,我帮你注释一下
int main(){  
        int a[N], b[N], i;   
        for(i = 0; i < N; i++){  
               a[i] = i + 1;     //数组初始化
        }  
         
        b[0] = 1;  
        for(i = 1; i < N; i++){  
               b[i] = b[i - 1] * a[i - 1];  //b[i]=a[0]*a[1]*...a[8]
        }  
         
        for(i = N - 2; i > 0; i--){  
               a[i] = a[i + 1] * a[i];   //b[i]后半部分a[i+1]*.....a[9]
        }  
         
        for(i = 0; i < N - 1; i++){  
               b[i] = b[i] * a[i + 1];  b[i]前部分乘以b[i]后部分
               printf("%d ", b[i]);  
        }  
        printf("\n");  
        return 0;  
}  


int main(){  
        int a[N], b[N], i;  
        for(i= 0; i < N; i++){  
               a[i]= i + 4;  
        }  
         
        b[0]= 1;  
        for(i= 1; i < N; i++){  
               b[i] = b[i - 1] * a[i - 1];  
        }  
         
        for(i = N - 2; i > 0; i--){  
               b[0] *= a[i + 1];   b[i]后部分
               b[i]*= b[0];         b[i]前部分乘以后部分,但缺a[1];
        }  
        b[0] *= a[1];  
        for(i = 0; i < N; i++){  
               printf("%d ", b[i]);  
        }  
         
        return0;  
}  

写得不好请谅解
冷板凳
发表于 2012-4-11 22:02:24 | 只看该作者
忘记加注释符号
4
发表于 2012-4-12 00:02:06 | 只看该作者
哇塞,,,不错哈!
5
 楼主| 发表于 2012-4-12 00:14:59 | 只看该作者
黄瓜 发表于 2012-4-12 00:02
哇塞,,,不错哈!

亲~这可是腾讯哦~
6
发表于 2012-4-13 00:25:06 | 只看该作者
楼主太厉害了!楼主,I*老*虎*U!
7
 楼主| 发表于 2012-4-15 21:40:26 | 只看该作者
sgdk3435 发表于 2012-4-15 21:32
时间,空间复杂度??

翻翻数据结构就知道了。
8
发表于 2012-4-15 22:06:03 | 只看该作者
看云了,,
9
发表于 2012-4-20 15:54:34 | 只看该作者
哈哈,学习了,万恶的验证码
10
发表于 2012-4-20 23:56:10 | 只看该作者
我表示晕    倒了。。
您需要登录后才可以回帖 登录 | 5秒快速注册
本版积分规则
关闭

BcWhy推荐上一条 /1 下一条

QQ|关于我们|最新帖子|小黑屋|手机版|编程十万个为什么 ( 粤ICP备16108587号-2   GMT+8, 2017-8-19 21:11 , Processed in 0.172799 second(s), 35 queries , File On.
Powered by Discuz! X3.3 © 2001-2017 Comsenz Inc.
快速回复 返回顶部 返回列表
尊宝国际娱乐APP下载亚虎娱乐手机官方网站亚虎国际娱乐齐乐娱乐国际
优乐娱乐齐乐娱乐网优乐娱乐龙8娱乐手机下载
优乐娱乐亚虎娱乐手机官方网站亚虎国际娱乐梦之城娱乐
尊宝国际娱乐APP下载尊宝国际手机首页尊宝国际娱乐城齐乐娱乐国际
优乐娱乐齐乐娱乐网优乐娱乐龙8娱乐手机下载