• Geek_Andy_Lee00
    2020-01-15
    老师,您给的示例代码中,10能被5整除,为啥也输出了呢

    作者回复: 啊,sorry,笔误,多写上去的!赞!👍

     1
     2
  • 一步
    2020-01-16
    为什么scanf(“%d”,&a);是用%d整数占位符替换的&a的地址,不应该是%p吗?

    作者回复: 后面讲到指针的时候,你就明白了。&a传入的是a的地址,这样scanf才能把处理结果放到变量a里面。

    
     1
  • 🤪HappyJoo
    2020-02-09
    还是不太明白或与那里是怎么回事,一知半解,等以后学得更深了,再回来看就懂了。老师的课程真好~

    代码如下:
      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 #include <time.h>
      4
      5 //create a list that can have 1001 number.
      6 //Get "egmentation fault (core dumped)" error when I enter 1008 .
      7 //Don't know why it's 1008 not 1001.
      8 int f[1001];
      9
     10 // main function
     11 int main(){
     12
     13 // create an int as n
     14 int n;
     15
     16 // input a number as n
     17 scanf("%d", &n);
     18
     19 // set the first number in the list to 0
     20 f[0] = 0;
     21
     22 // insert how many 1 each number has to the list
     23 for (int i = 1; i <= n; i++) {
     24 f[i] = f[i & (i - 1)] + 1;
     25 }
     26
     27 // print the resule in the list one by one
     28 // you have to use a loop to output element in a list in C
     29 // you can just use 'printf("%d", f[i]);', but it will get an extra ' ' at the begining.
     30 for (int i = 1; i <= n; i++) {
     31 if (i != 1) printf(" "); //aviod the first space
     32 printf("%d", f[i]);
     33 }
     34
     35 // print a new line
     36 printf("\n");
     37
     38 // return 0
     39 return 0;
     40 }
     41
    展开
    
    
  • 信念
    2020-02-01
    vim test10.cpp
    #include<stdio.h>

    int main(){
    int a;
    sizeof(a); // 计算 a 变量占用字节数量
    sizeof(int); // 计算一个整型元素占用字节数量
    return 0;
    }
    gcc test10.cpp
    ./a.out
    老师,我进行了上述操作,为什么屏幕上面没有任何回应呀?
    展开

    作者回复: 因为你没有输出啊!用printf输出sizeof的值

     1
    
  • 信念
    2020-01-31
    vim test09.cpp
    #include<stdio.h>
    int main(){
    int n, arr[1000];
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
    return 0;
    }
    gcc test09.cpp
    ./a.out
    这是我的操作,请问老师下面我应该打什么命令呀?
    展开

    作者回复: 下面你就可以输入数据了,首先输入一个n的值,例如3,然后再输入n个值即可。

     1
    
  • 奔跑的八戒
    2020-01-15
    思考题:去掉倍数
    定义数组 a[m+1],初始化值为0
    想到最快的算法,把每个数的倍数[下标]的值置为1;
    输出值还为0的数组下标

    作者回复: yes!
    d(^_^o)

    
    
  • 奔跑的八戒
    2020-01-15
    感觉老师课程的步子跨度还是比较大的,真的小白如果不花几倍的时间吸收消化,还真容易扯着蛋的,哈哈。

    作者回复: d(^_^o)所以给大家推荐了三本书。资料比较多的内容,专栏里面就很少会讲,专栏里主要讲阻碍大家学习编程的部分。否则,32讲,可能才讲完语言。

    
    
  • 梅利奥猪猪毛丽莎肉...
    2020-01-14
    嗯还是相对比较基础的,对于萌新来说建议老师在图5种补充一个y=*****000000,这样萌新会看的更加轻松,和x做对比的确就差个1,至于前面的*号为什么一致,也是因为与的运算,因为1&1=1, 0&0=0,然后在结合下面的程序看,一看就看懂了

    作者回复: (。ì _ í。)好的,谢谢你的建议,d(^_^o)

    
    
  • 徐洲更
    2020-01-14
    如果题目求的并不是1-n的1的数,而是n的1的数量,利用递推的解决方法的时间复杂度是不是就比最开始的方法高呢

    作者回复: 对的,如果单纯的只是求n中二进制表示1的数量的话,那么直接求就好了,用不着递推。前后是两种性质完全不同的题目。

     1
    
  • 行问
    2020-01-14
    以二进制数字 110 为例,末尾是 0,计数量 cnt 不进入计算;然后 110 除以 2,即去掉最后一位的 0,变成了 11,此时末尾是 1,计数量 cnt 就加 1;11 再除以 2,变成了 1,此时末尾是 1,计数量 cnt 再次加 1 。最后的 n 等于 1,再除以 2,n 变成了 0,循环结束。

    这个段落的叙述、逻辑,让初学者直接挂掉了。110 除以 2,即去掉最后一位的 0, 变成了 11。我在大脑、拿纸笔,反复的推算,它都不成立。以二进制除法?十进制除法?

    作者回复: 二进制除法

     2
    
我们在线,来聊聊吧