鱼C论坛

 找回密码
 立即注册
楼主: jonng

[技术交流] 【转载CSND】一道淘汰85%面试者的百度开发者面试题

  [复制链接]
发表于 2014-10-12 00:25:52 From FishC Mobile | 显示全部楼层
#include <stdio.h>
main()
{
int i;
for(i=0;i<=100;i++)
   {if(i%3==0&&i%5==0)
    printf("*#%d\n",i)
    else if(i%3==0)
            printf("*%d\n",i)
            else if(i%5==0)
            printf("#%d\n",i)
    }
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-1 07:25:44 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-1 12:10:07 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-7 00:20:19 | 显示全部楼层
13546
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-7 22:08:03 From FishC Mobile | 显示全部楼层
有个思路,可以从2开始乘以3只要不大于100的就输出,依次类推
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-7 23:26:03 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-8 00:01:30 | 显示全部楼层
初看以为有什么玄机,看结果没感觉应该85%的人都会采用这种思路吧。%应该是用除法吧,除法是最费时间的,还要判断  i%3, i%5。和楼上思路类似,改用加法,不过要遍历三次。我感觉即使这样应该也会稍快点。
两个一维数组:  char three[101]={'\0'};     char five[101]={'\0'};
第一遍:   for (int i=0; i<=100; i+=3)
                      three[i] = '*';
第二遍:    for (i=0; i<=100;i+=5)
                      five[i] = '#';
第三遍:    for (i=0; i<=100; i++)
                      printf("%c%c%d ", three[i], five[i], i);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-8 00:10:40 | 显示全部楼层
#include <stdio.h>
int main(void) {
        int i;
        for( i=0+1;i<=100;++i ) {
                int div_3 = !(i%3);
                int div_5 = !(i%5);

                if( div_3 || div_5 )
                        printf("%s%s%d ",
                                div_3?"*":"",
                                div_5?"#":"",
                                i
                                );
        }
        printf("\n");
}


这段代码比楼主的代码要效率高不少啊, 关键在于加粗的那两句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-8 11:44:25 | 显示全部楼层
埒肝肝有地
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-8 14:30:28 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-8 23:08:40 | 显示全部楼层
{:1_1:}{:1_1:}{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-9 13:04:56 | 显示全部楼层
看看吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 17:19:17 | 显示全部楼层
有没有答案:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 19:36:28 | 显示全部楼层
谢谢楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 21:57:48 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-10 10:32:42 | 显示全部楼层
感谢楼主~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 12:35:56 | 显示全部楼层
:funk:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-16 15:11:34 | 显示全部楼层
#include <iostream>

int main()
{
        int num[101];
        //标记被5整除的数
        for(int i=0; i<101; i+=5)
        {
                num[i] = 5;
        }
        //标记被3整出或同时被3和5整除的数
        for(int i=0; i<101; i+=3)
        {
                if(num[i] == 5)
                        num[i] = 8;
                else 
                        num[i] = 3;
        }
        //输出
        for(int i=0; i<101;i++)
        {
                switch(num[i])
                {
                case 3: std::cout << i << ": * \n";break;
                case 5: std::cout << i << ": # \n";break;
                case 8: std::cout << i << ": *# \n";break;
                }
        }
        
        system("pause");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-16 17:07:44 From FishC Mobile | 显示全部楼层
我是初学者
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-8 09:06:13 | 显示全部楼层

看看,学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 11:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表