klxh68 发表于 2014-10-12 00:25:52

#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)
    }
}

疯子~ 发表于 2014-12-1 07:25:44

看看

eddie924 发表于 2014-12-1 12:10:07

看看

神灬释 发表于 2014-12-7 00:20:19

13546

RunANT 发表于 2014-12-7 22:08:03

有个思路,可以从2开始乘以3只要不大于100的就输出,依次类推

firefox_zyw 发表于 2014-12-7 23:26:03

看看

firefox_zyw 发表于 2014-12-8 00:01:30

初看以为有什么玄机,看结果没感觉应该85%的人都会采用这种思路吧。%应该是用除法吧,除法是最费时间的,还要判断i%3, i%5。和楼上思路类似,改用加法,不过要遍历三次。我感觉即使这样应该也会稍快点。
两个一维数组:char three={'\0'};   char five={'\0'};
第一遍:   for (int i=0; i<=100; i+=3)
                      three = '*';
第二遍:    for (i=0; i<=100;i+=5)
                      five = '#';
第三遍:    for (i=0; i<=100; i++)
                      printf("%c%c%d ", three, five, i);

firefox_zyw 发表于 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");
}


这段代码比楼主的代码要效率高不少啊, 关键在于加粗的那两句

唐伯 发表于 2014-12-8 11:44:25

埒肝肝有地

tlwangxd 发表于 2014-12-8 14:30:28

学习

hezhe711 发表于 2014-12-8 23:08:40

{:1_1:}{:1_1:}{:1_1:}

黎明曙光 发表于 2014-12-9 13:04:56

看看吧

ghc00259 发表于 2014-12-9 17:19:17

有没有答案:cry

minyuanxiani 发表于 2014-12-9 19:36:28

谢谢楼主

Xin950320 发表于 2014-12-9 21:57:48

{:1_1:}

金属青苹果 发表于 2014-12-10 10:32:42

感谢楼主~~

woainigui8888 发表于 2014-12-10 12:35:56

:funk:

z294354069 发表于 2014-12-16 15:11:34

#include <iostream>

int main()
{
        int num;
        //标记被5整除的数
        for(int i=0; i<101; i+=5)
        {
                num = 5;
        }
        //标记被3整出或同时被3和5整除的数
        for(int i=0; i<101; i+=3)
        {
                if(num == 5)
                        num = 8;
                else
                        num = 3;
        }
        //输出
        for(int i=0; i<101;i++)
        {
                switch(num)
                {
                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;
}

刘业城 发表于 2014-12-16 17:07:44

我是初学者

vbirds 发表于 2015-1-8 09:06:13


看看,学习下
页: 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18
查看完整版本: 【转载CSND】一道淘汰85%面试者的百度开发者面试题