幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2479|回复: 1

[通用编程] 问个程序的时间复杂度

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2009-2-27 23:58:08 | 显示全部楼层 |阅读模式
  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(void)
  4. {
  5.     int i,t=0,n,m;
  6.    
  7.     scanf("%d",&n);
  8.     for(i=sqrt(n-1);i>=sqrt(n/2);i--)
  9.         if((i*i+(sqrt(n-i*i))*sqrt(n-i*i))==n)
  10.         {
  11.             m = sqrt(n-i*i);
  12.             printf("%d=%d*%d+%d*%d\n",n,i,i,m,m);
  13.             t = 1;break;
  14.             if(t==0) printf("none!");
  15.         }   
  16.    
  17.     return 0;
  18. }
复制代码
这样时间复杂度应该是什么呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2009-2-28 09:10:57 | 显示全部楼层
这句:
if(  (i*i+ (sqrt(n-i*i))*sqrt(n-i*i)) == n  )
感觉起来就是 n == n ,当然前提是 n> i*i ……

所以这样的话一定就是直接BREAK了吧?
Style-C
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-11-1 07:58 , Processed in 0.049006 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表