搜索
查看: 1017|回复: 9
打印 上一主题 下一主题

啊哈磊表示你编的书啊哈C 121页那里a的范围是2~k/2那个地方不懂..

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-13 21:13:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
啊哈磊表示你编的书啊哈C 121页那里a的范围是2~k/2那个地方不懂..
求解
表示想不明白
查百度都没效果
真心不懂
求大神详解
来自 4#
发表于 2014-9-14 09:10:07 | 只看该作者
因为如果是k的话,就会多出许多次循环,浪费时间。当然你写k也是可以的
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.         int k, a, b, i, fa, fb;
  7.     for(k = 4;k < 101;k += 2)
  8.                 for(a = 2;a <= k;a ++)
  9.         {
  10.                         fa = 0;
  11.             for(i = 2;i <= a - 1;i ++)
  12.                                 if(a % i == 0)
  13.                 {
  14.                                         fa = 1;
  15.                     break;
  16.                 }
  17.             if(!(fa))
  18.             {
  19.                                 b = k - a;
  20.                
  21.                 fb = 0;
  22.                 for(i = 2;i <= b - 1;i ++)
  23.                                         if(b % i == 0)
  24.                                         {
  25.                                                 fb = 1;
  26.                         break;
  27.                     }
  28.                 if(!(fb))
  29.                 {
  30.                                         printf("%d = %d + %d\n", k, a, b);
  31.                     break;
  32.                 }
  33.             }
  34.         }
  35.         system("pause");
  36.     return 0;
  37. }
复制代码
沙发
发表于 2014-9-13 21:28:30 | 只看该作者

点评

.....丫的 有没有点实际的话- -求解那个玩意是啥意思  发表于 2014-9-13 21:38
板凳
发表于 2014-9-13 21:40:42 | 只看该作者
就是2到k÷2啊

点评

.................我只想知道咋出来的,我也知道是2~k/2,求重点  发表于 2014-9-14 08:55
5#
发表于 2014-9-14 09:11:03 | 只看该作者
另外如果你要回复,不要用点评功能,一来没法回复你,二来收不到提醒
6#
发表于 2014-9-14 10:32:13 | 只看该作者
质数试除?这不显然的吗
7#
 楼主| 发表于 2014-9-14 12:16:39 | 只看该作者
4399APPLE 发表于 2014-9-14 09:10
因为如果是k的话,就会多出许多次循环,浪费时间。当然你写k也是可以的

好像又有点懂,其中一半肯定不会大于k/2的范围内,先求小的那部分,大的部分肯定是相对应的,迟早会出来0.0
8#
发表于 2014-9-14 13:22:25 | 只看该作者
qianhao 发表于 2014-9-14 12:16
好像又有点懂,其中一半肯定不会大于k/2的范围内,先求小的那部分,大的部分肯定是相对应的,迟早会出来0 ...

当然了,因为你k*(k/2+1)肯定超过了k
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表