Sparin 发表于 2020-2-10 11:06:41

召唤风云 发表于 2020-2-9 16:53
for(a;b;c){d}。先进行a。再判断b。不成立则循环终止。成立就执行d。然后执行c。再判断b。然后就是重复。

那{flag=0;break;}这里的break跟if(flag){break}的break有什么区别?{:5_105:}辛苦你了,嘿嘿

Sparin 发表于 2020-2-10 11:21:49

SHRS23 发表于 2020-2-9 18:44
质数就是素数,是这意思

哇,今天重看一遍,他那个循环体好强,while if,先将2除到2除不了,再到3,66666

哈哈,你错一半,质因数不等同于质数,质因数是除了1;素数(质数)是除了1和本身

召唤风云 发表于 2020-2-10 15:03:44

Sparin 发表于 2020-2-10 11:06
那{flag=0;break;}这里的break跟if(flag){break}的break有什么区别?辛苦你了,嘿嘿

条件不同,位置不同,作用不同。

Sparin 发表于 2020-2-10 16:29:52

召唤风云 发表于 2020-2-10 15:03
条件不同,位置不同,作用不同。

作用不是都跳出for循环吗?

召唤风云 发表于 2020-2-10 21:32:37

Sparin 发表于 2020-2-10 16:29
作用不是都跳出for循环吗?

我完整的讲一遍吧,最后一遍了。其他的你应该已经理解了,我就讲一下怎么判断是不是素数。这其实是一道简单的练习题。一般情况是用一个变量做标记。比如说。判断n是素数,int x=1,for(int i=2;i<n;i++)
{if(n%i=0)
{flag=0;n一定是合数 break;此处可以省略,只是为了节省时间}}
if(x==1)没有任何

召唤风云 发表于 2020-2-10 21:34:18

if(x==1)没有任何小于n的数能被n整除。所以n是素数。

召唤风云 发表于 2020-2-11 12:01:41

我不是特别会讲题,抱歉。我其实基础不好,我是跳着学的。其实我又想了一下,原来的代码和我的想法其实本质上是一样的,有一些细节不同,导致我误判了。

Sparin 发表于 2020-2-11 12:36:14

{:9_237:}

zhangfeiwen 发表于 2021-1-17 21:07:33

感谢 这个题头都是晕的

zr5112 发表于 2021-4-10 11:16:40

召唤风云 发表于 2020-2-7 22:16
第1问,如果是我,我会这样做。用一个for循环i从一到原来的那个数,看i是不是原来的数的因数,如果是那就brea ...

确实,你的思路和我的思路差不多我是想先求一个数是不是质数,然后这个数是不是原来那个数的因数,如果是代替原来的数,求一个数是不是质数的时候肯定从小向大检验,所以后面的比前面的大,最后剩下那个数肯定是最大的。为了验证我的想发,最后写了一个if,当最后两个数相除时,如果结果等于1就给一个反馈。和你的想法大差不差,不过你的想法还是比我的想法简便些。论坛里面全是大佬。
页: 1 [2]
查看完整版本: 第一阶段考核的第2题,不知解题思路,答案看不懂