首页 > 其他 > 详细

优秀代码收集计划

时间:2020-01-30 11:45:11      阅读:55      评论:0      收藏:0      [点我收藏+]

计算几何

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const double PI = acos(-1.0);
struct point
{
    double x;
    double y;
    double z;
};
struct circle
{
    point o;
    double r;
} a, b;
double getlen(point a, point b)
{
    double ans = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) + (a.z - b.z) * (a.z - b.z));
    return ans;
}
int main()
{
    scanf("%lf%lf%lf%lf", &a.o.x, &a.o.y, &a.o.z, &a.r);
    scanf("%lf%lf%lf%lf", &b.o.x, &b.o.y, &b.o.z, &b.r);
    
    if (a.r > b.r)
        swap(a, b);
    double dis = getlen(a.o, b.o);
    if (dis + a.r <= b.r)
    {
        double r = max(a.r, b.r);
        double ans = 4 * PI * r * r;
        printf("%.6lf", ans);
    }
    else if (dis < a.r + b.r && dis + a.r > b.r)
    {
        double angle_cosa = (a.r * a.r + dis * dis - b.r * b.r) / (2 * a.r * dis);
        double angle_cosb = (b.r * b.r + dis * dis - a.r * a.r) / (2 * b.r * dis);
        double len_a = a.r - a.r * angle_cosa;
        double len_b = b.r - b.r * angle_cosb;
        double ans = 4 * PI * (a.r * a.r + b.r * b.r);
        ans -= 2 * PI * (a.r * len_a + b.r * len_b);
        printf("%.6lf", ans);
    }
    else
    {
        double ans = 4 * PI * (a.r * a.r + b.r * b.r);
        printf("%.6lf", ans);
    }
}

python(进制转换)

def toshi(x):
    if '0'<=x<='9':
        return ord(x)-48
    return ord(x)-ord('a')+10
def shito(x):
    if 0<=x<=9:
        return chr(x+48)
    return chr(x-10+ord('a'))
s=input()
a,b=map(int,input().split())
ans=0
for i in s:
    ans*=a
    ans+=toshi(i)
if ans==0:
    print(0)
pr=''
while ans>0:
    pr=shito(ans%b)+pr
    ans//=b
print(pr)

优秀代码收集计划

原文:https://www.cnblogs.com/reshuffle/p/12242314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!