J: Just for fun
J: Just for fun
题目描述
最近carryon在准备考研复习高数,复习到微分学的时候看到一个求曲面某点的切平面的问题。
现在有一个曲面方程如下:
AX^2 + BY^2 + CZ^2 = D
给一个在曲面上的点(x, y, z);
然后你需要计算出切面方程,并且输出;
a,b,c,d分别为他们的系数
(保证结果一定存在)
输出的格式如:(系数为零的不输出)
ax + by + cz + d = 0
输出规定最前面的未知数的参数为正数;
输入
题目要求多组输入!!!
第一行输入四个参数,A, B, C, D;(-10000 <A,B,C,D<10000, 且都不为零);
第二行输入三个参数,x, y, z;(-100 < x,y,z < 100);
输出
ax + by + cz + d = 0
样例输入
1 1 1 14
1 2 3
样例输出
x + 2y + 3z - 14 = 0 高数:解切面方程
1、先求出切面方程的法向量(2ax0,2by0,2cz0);
2、用点法式表示切面方程:2ax0(x-x0)+2by0(y-y0)+2cz0(z-z0)=0
注意几点要求:
1、第一个未知数系数一定为正
2、系数为零的不输出
3、系数为-1和1的未知数不输出1
#include<iostream>
#include<math.h>
#define ll long long
using namespace std;
ll a, b, c, d, x, y, z,A, B, C, temp;
ll gcd(ll a, ll b)
{
return b == ? a : gcd(b, a%b);
}
void check()
{
if(A==)
{
if(B==)
{
if(C<)
C=C*-,d=d*-;
}
if(B<)
B=B*-,C=C*-,d=d*-;
}
if(A<)
A=A*-,B=B*-,C=C*-,d=d*-;
}
int main()
{ while (~scanf("%lld%lld%lld%lld", &a, &b, &c, &d))
{
scanf("%lld%lld%lld", &x, &y, &z);
//ll A, B, C, temp;
A = * x*a, B = * y*b, C = * z*c;
d = A * x*- + B * y*- + C * z*-;
//A = 2 * x*a, B = 2 * y*b, C = 2 * z*c;
temp = gcd(gcd(A, B), gcd(C, d));
A = A / temp, B = B / temp, C = C / temp, d = d / temp;
check();
if(A!=&&A!=&&A!=-)
cout<<A<<'x';
if(A==)
cout<<'x';
if(A==-)
cout<<"-x";
if(B>&&B!=&&B!=-)
cout<<" + "<<B<<'y';
if(B<&&B!=&&B!=-)
cout<<" - "<<-*B<<'y';
if(B==)
cout<<'y';
if(B==-)
cout<<"-y";
if(C>&&C!=&&C!=-)
cout<<" + "<<C<<'z';
if(C<&&C!=&&C!=-)
cout<<" - "<<-*C<<'z';
if(C==)
cout<<'z';
if(C==-)
cout<<"-z";
if(d<)
cout<<" - "<<-*d;
if(d>)
cout<<" + "<<d;
cout<<" = 0"<<endl; }
return ; }
J: Just for fun的更多相关文章
- 【Java并发编程实战】-----“J.U.C”:CAS操作
CAS,即Compare and Swap,中文翻译为"比较并交换". 对于JUC包中,CAS理论是实现整个java并发包的基石.从整体来看,concurrent包的实现示意图如下 ...
- 【Java并发编程实战】-----“J.U.C”:Exchanger
前面介绍了三个同步辅助类:CyclicBarrier.Barrier.Phaser,这篇博客介绍最后一个:Exchanger.JDK API是这样介绍的:可以在对中对元素进行配对和交换的线程的同步点. ...
- 【Java并发编程实战】-----“J.U.C”:CountDownlatch
上篇博文([Java并发编程实战]-----"J.U.C":CyclicBarrier)LZ介绍了CyclicBarrier.CyclicBarrier所描述的是"允许一 ...
- 【Java并发编程实战】-----“J.U.C”:CyclicBarrier
在上篇博客([Java并发编程实战]-----"J.U.C":Semaphore)中,LZ介绍了Semaphore,下面LZ介绍CyclicBarrier.在JDK API中是这么 ...
- 【Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock
ReentrantLock实现了标准的互斥操作,也就是说在某一时刻只有有一个线程持有锁.ReentrantLock采用这种独占的保守锁直接,在一定程度上减低了吞吐量.在这种情况下任何的"读/ ...
- JAVA并发编程J.U.C学习总结
前言 学习了一段时间J.U.C,打算做个小结,个人感觉总结还是非常重要,要不然总感觉知识点零零散散的. 有错误也欢迎指正,大家共同进步: 另外,转载请注明链接,写篇文章不容易啊,http://www. ...
- Android Studio解决未识别Java文件(出现红J)问题
1.问题:java文件出现了红J的问题,正常情况下应该是显示蓝色的C标识. 2.解决方案:切换到project视图下,找到app这个module里的build.gradle,在android结构里插入 ...
- //给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和 # include<stdio.h> void main() { ,sum1; ]={,- ...
- 面试题:给定数组a,找到最大的j-i, 使a[j]>a[i]
第一种方法: 用两重循环对每对点都试一下,然后取最大值即可,时间复杂度为O(n2) #include <iostream> #include <algorithm> using ...
- 关于i和j
算法课无聊随手写了段c代码,发现了个问题,就要下课了,先记一下 for(int i = 0; i < 100; i ++) for(int j = 0; j < 100000; j ++) ...
随机推荐
- AspnetBoilerplate (ABP) Organization Units 组织结构管理
ABP是一个成熟的.NET框架,功能完善.目前由于项目需要正在自学中. ABP对于组织节点管理这一基本上每个项目都要反复重复开发的内容,进行了自己的实现. 主要包括这些常用功能: 多租户 树结构管理的 ...
- python基础借鉴
这是一个链接 这个是egon的链接 吴沛其的博客
- SIP简介
说明:以下内容来着之前下载的一份文档,现将概念部分摘录在BLog,如需要完整文档将放在文件中或留言. SIP简介,第1部分:SIP初探 时间:2006-04-07作者:Emmanuel Proulx浏 ...
- 【转载】mysql中timestamp,datetime,int类型的区别与优劣
转载来自souldak,微博:@evagle以下内容整合筛选自互联网: int1. 占用4个字节2. 建立索引之后,查询速度快3. 条件范围搜索可以使用使用between4. 不能使用mysql提供的 ...
- CodeForces 681D Gifts by the List (树上DFS)
题意:一个家庭聚会,每个人都想送出礼物,送礼规则是, 一个人,先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系, 和每个人想给谁送! ...
- NSPredicate过滤数组数据
NSPredicate编写软件时,经常需要获取一个对象集合,然后删除不满足条件的对象,保留符合条件的对象,从而提供一些有意义的对象.Cocoa提供了一个名为NSPredicate的类,他用于指定过滤器 ...
- 编写高质量代码改善C#程序的157个建议——建议72:在线程同步中使用信号量
建议72:在线程同步中使用信号量 所谓线程同步,就是多个线程在某个对象上执行等待(也可理解为锁定该对象),直到该对象被解除锁定.C#中对象的类型分为引用类型和值类型.CLR在这两种类型上的等待是不一样 ...
- loadrunner中对https证书的配置
1.准备好网站的证书,一般证书是cer格式: 2.因为loadrunner只支持pem格式的证书,所以要将证书转换格式,利用openssl工具:(或者直接让开发提供pem格式的证书) 3.得到pe ...
- VS2013启动越来越慢
Q.VS2013 原来启动只要大概 一两秒的时间,现在启动最少也得十秒以上.而且打开项目也变得很慢了!求解决方案. A.清理一下缓存就好了. VS2010清理缓存:第一:启用vs2010命令行工具:在 ...
- base64编码问题
最近遇到一个很奇怪的问题:post方式上传文件,因为文件不大,所以直接base64后作为参数扔给服务器.一开始好用,后来出问题了,上传的压缩包再下载后,能双击打开看到压缩包里面的文件,但是解压就报错, ...