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 ++) ...
随机推荐
- CentOS7安装redis,并设置开机自启动
卸载redis 停止并删除所有已的rendis目录即可. rm -rf /home/wls/soft/redis-4.0.2 rm -rf /etc/redis* rm -rf /var/log/re ...
- SQL高性能分页
分页的场景就不多说了,无处不在. 方法一:利用row_number() with C as ( select ROW_NUMBER() over(order by orderdate,orderid) ...
- libxml2
http://www.xmlsoft.org/downloads.html 建议直接用openscenegraph下载的3rdparty:http://www.openscenegraph.org ...
- java String,StringBuffer,StringBuilder区别及联系
String 字符串常量(不可变)StringBuffer 字符串变量(线程安全,可变) StringBuilder 字符串变量(非线程安全,性能优,可变) 简要的说, String 类型和 Stri ...
- CodeForces 907F Power Tower(扩展欧拉定理)
Priests of the Quetzalcoatl cult want to build a tower to represent a power of their god. Tower is u ...
- MongoDB整理笔记の移除Shard Server
有些时候有于硬件资源有限,所以我们不得不进行一些回收工作,下面我们就要将刚刚启用的Shard Server 回收,系统首先会将在这个即将被移除的Shard Server 上的数据先平均分配到其它的Sh ...
- Android-bindService远程服务(Aidl)-初步
之前上一篇讲解到本地服务,本地服务只能在自身APP中Activity访问Service,调用Service里面到方法等操作 如果想A应用访问B应用里面的方法,属于跨进程调用,如果Android不特供这 ...
- Shapefile点图层转换为Shapefile线图层
在Oracle数据表转换为Shapefile(一)和Oracle数据表转换为Shapefile(二)两篇文章中,分别介绍了两种不同的根据Oracle数据表生成Shapefile点图层的方法.本文在此基 ...
- 爬虫--使用scrapy爬取糗事百科并在txt文件中持久化存储
工程目录结构 spiders下的first源码 # -*- coding: utf- -*- import scrapy from firstBlood.items import Firstblood ...
- c#设计模式系列:状态模式(State pattern)
引言 我们在编程的时候,有时候会遇到,一个对象的行为动作会由对象的状态来决定的,也就是对象的行为是由状态来决定,如果对象的状态很多,那么也会由很多不同的行为,这时候我们一班会 if –else if- ...