总结最近学习成果07-亮灯问题

.亮着电灯的盏数,电灯1 <= n <= 65535 全关着
n个学生,第一个学生1的倍数的灯拉一下,第二个学生2的倍数的灯拉一下… 最终亮灯情况

/*
     思路:n个学生n个灯 通过不同的学生点亮再熄灭重复   最后剩下来点亮的灯
     就是那些有平方生成的数  因为第9位置的灯能够被1 3 9 灯亮 熄灭 点亮 3*3 最后只有一个
     形成了奇数个约数 所以统计有多少个这样位置上的数字就可以知道 最后有多少灯是亮的
     */
     int n = 0;
     printf("输入学生个数n");
     scanf("%d",&n);
     int c = 0;
     for (int i = 1; i*i <= n; i++){//统计n的范围内 有多少个数 以1*1  2*2 3*3...这样的方式形成
           printf("%d ",i*i);
           c++;
     }
     printf("有%d盏灯在亮 ", c);


猜你喜欢

转载自blog.csdn.net/RyanXTY/article/details/89035665