永发信息网

c语言,什么会导致超过时间限制?

答案:2  悬赏:60  手机版
解决时间 2021-12-23 14:43
  • 提问者网友:富士山上尢
  • 2021-12-22 16:21
很多时候都遇到了这种情况,希望有人做一个总结?
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-12-22 16:54
算法的时间复杂度大。解决方法:重新构思新的算法。也就是说用另一种方法去实现你的程序。
全部回答
  • 1楼网友:毛毛
  • 2021-12-22 17:42
从你的程序可以看出,是在求"从键盘输入一个大于2的整数k,输出不大于k的最大的素数。"你的程序尽管也可找出来,但选择的算法效率太低,你是从小到大逐一判断,然后取其最大的,这种方法需先求出不大于k的所有的素数,效率当然低了。正解是从大到小逐一判断,遇到的第一个素数即为不大于k的最大素数。程序可如下 #include #include void main( ) { int i, k, n, f, s; scanf("%d", k); for(n = 0, f = k; !n && (f > 1); f--) { for(n = 1, i = 2, s = sqrt(f); n && (i <= s); i++) if(f % i == 0) n = 0; } printf("the max prime number is %d\n", f); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯