力为的技术博客
联系
聚合
管理
154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks
公告
@上海浦东
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(58)
给我留言
查看公开留言
查看私人留言
随笔分类
(154)
2. Graphics(10)
3. VC&MFC&Qt(35)
4. C++ FAQ(35)
5. GP&STL&BOOST(10)
6. COM&ATL&WTL(5)
7. OGRE Analysis(14)
8. ACIS/HOOPS(4)
9.OpenCASCADE(13)
Mac&iOS(5)
Mac&iOS(1)
Tools(22)
积分与排名
积分 - 704649
排名 - 22
最新评论
1. re: 2015武汉校园招聘归来
@eryar
时间安排的太紧,就没有惊扰你啦。
--力为
2. re: 2015武汉校园招聘归来
评论内容较长,点击标题查看
--sunyuanbo
3. re: 2015武汉校园招聘归来
谢谢 您的笔记让我受益匪浅
--仝锡林
4. re: 2015武汉校园招聘归来
不知道来武汉了啊!
--eryar
5. re: 2015武汉校园招聘归来
@力为
谢谢提醒,还在学习中。。。
--编程小学徒
6. re: 2015武汉校园招聘归来
评论内容较长,点击标题查看
--编程小学徒
7. re: 2015武汉校园招聘归来[未登录]
评论内容较长,点击标题查看
--chipset
8. re: 2015武汉校园招聘归来
@编程小学徒
考研也不仅仅靠有编程兴趣就够了,还有其他的课程。好好准备吧,祝考试顺利。
--力为
9. re: 2015武汉校园招聘归来
评论内容较长,点击标题查看
--编程小学徒
10. re: 2015武汉校园招聘归来[未登录]
为了混口饭吃,大家都不容易啊,原谅刷题的同学吧。话说学校里能教啥呀,都靠自己用心,有上进心才是最重要的,否则笔试面试再好也是白扯。从面试官的角度看考试没有错,换成我会找有潜力的或者上进心强的。
--chipset
11. re: 【代码】使用Teigha读取DWG
要用vs2010编译么?
--jj
12. re: 临时对象引用[未登录]
最后一个例子也是零时变量?
--zhonghuajia
13. re: 为什么需要给函数返回类型加const
评论内容较长,点击标题查看
--冬瓜
14. re: 【代码】使用Teigha读取DWG
欢迎加入QQ群122751318,讨论Teigha
--Teigha开发
15. re: CMake + Qt5.1.0
@MIKE
还是不行。
不管是prefix还是library还是include,都尝试过了,不行,网上的方法都不行……
--Delbert
评论排行榜
1. Pro OGRE 3D Programming 电子版(54)
2. 手机号码黑名单(53)
3. 屏幕截图工具V1[附源码](22)
4. 波形显示不是很难(15)
5. 五个小矮人分桃子-一道小学生的作业题目(15)
6. 用CImage加载内存里的Image(14)
7. 用istringstream 解决问题一则(14)
8. OGRE动画练习(13)
9. VC+ADO操作数据库注意事项(1)(13)
10. fstream 和 中文路径(13)
11. OGRE粒子系统之在烈火中永生(11)
12. 如何通过FILE*操作内存文件?(11)
13. VC2008 Feature Pack的问题(11)
14. 升级到 VS2008 SP1 注意问题(11)
15. 失足于shared_ptr(11)
矩形相含问题
问题:
长和宽已知的两个矩形A和B,判断B能否放入到A里面。
下面是用C语言的实现版本V0.1:(若有错误恳请斧正
)
我的解答
#include
<
math.h
>
#ifndef max
#define
max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define
min(a,b) (((a) < (b)) ? (a) : (b))
#endif
int
main(
int
argc,
char
*
argv[])
{
double
lA, wA, lB, wB;
if
(argc
>
4
)
{
lA
=
atof(argv[
1
]);
wA
=
atof(argv[
2
]);
lB
=
atof(argv[
3
]);
wB
=
atof(argv[
4
]);
}
else
{
printf(
"
Input the length and width of two rectangles:\n
"
);
scanf(
"
%lf %lf %lf %lf
"
,
&
lA,
&
wA,
&
lB,
&
wB);
}
if
(min(lA, wA)
<
min(lB, wB))
{
printf(
"
0 Can't!\n
"
);
return
0
;
}
double
tmp
=
(lA
*
lA
+
wA
*
wA
-
lB
*
lB
-
wB
*
wB)
/
(
2
*
lB
*
wB);
if
(tmp
<
0.0
)
{
printf(
"
1 Can't!\n
"
);
return
0
;
}
if
(tmp
>
1.0
)
{
printf(
"
OK!\n
"
);
return
0
;
}
double
arcsin
=
asin(tmp)
/
2.0
;
if
(arcsin
<
0.000001
||
arcsin
>
3.141593
/
2.0
)
{
printf(
"
2 Can't!\n
"
);
return
0
;
}
double
lAmin
=
lB
*
cos(arcsin)
+
wB
*
sin(arcsin);
double
wAmin
=
lB
*
sin(arcsin)
+
wB
*
cos(arcsin);
if
(lA
<
lAmin
||
wA
<
wAmin)
{
printf(
"
3 Can't!\n
"
);
return
0
;
}
printf(
"
OK!\n
"
);
return
0
;
}
posted on 2005-11-01 11:16
力为
阅读(658)
评论(7)
编辑
收藏
引用
所属分类:
Tools
评论
#
re: 矩形相含问题 2005-11-04 00:11
沐枫网志
怎么会这么复杂啊?很简单的东西嘛:
if(lA > wA) swap(lA, wA);
if(lB > wB) swap(lB, wB);
if(lA > lB & && wA > wB)
{
B可以放到A中。
}
else
{
B不能放到A中。
}
回复
更多评论
#
re: 矩形相含问题 2005-11-04 16:24
力为
沐枫网志 :
你只考虑了一种情况:正着放。还要斜着放的情况。
回复
更多评论
#
re: 矩形相含问题 2005-11-10 11:32
沐枫网志
不是这样的,斜着能放的,正放一定能放。
正放能放的,斜着不一定能放。
所以,只要能正放,就说明,B可以放到A里头。
回复
更多评论
#
re: 矩形相含问题 2005-11-12 12:22
mythma
此言差矣
考虑对角线的情况。可以看作是一种特殊的情形:B的短边趋向于零。
回复
更多评论
#
re: 矩形相含问题 2005-11-16 11:08
沐枫
受教了
回复
更多评论
#
re: 矩形相含问题 2005-12-14 15:29
tjin
if(lA*lA + wA*wA > lB*lB + wB*wB)
{
B可以放到A中。
}
else
{
B不能放到A中。
}
回复
更多评论
#
re: 矩形相含问题
2005-12-14 17:04
力为
to tjin:
在极限的情况下,明显错误.
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
Perforce的shelved 命令
我的原创技术随笔大全(2000~2009)
Vista 远程连接设置
Boost.Python与C++互操作的问题(更新)
STL容器误用一则
运算符 && 和 ||
[Debug] 解决图形没有显示的问题
屏幕截图工具V2
VC2008 竟然不带 glaux.lib!
用wxWidgets做界面
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © 力为