zoukankan      html  css  js  c++  java
  • 洛谷 P2026 求一次函数解析式

    题目背景

    做数学寒假作业的怨念……

    题目描述

    给定两个整点的坐标,求它们所在直线的函数解析式(一次函数)。

    输入输出格式

    输入格式:

     

    输入共两行。

    第一行有两个整数x1,y1。表示第一个整点的坐标为(x1,y1)

    第二行有两个整数x2,y2。表示第二个整点的坐标为(x2,y2)

     

    输出格式:

     

    输出共一行,即这个函数解析式。

     

    输入输出样例

    输入样例#1: 复制
    【一】
    3 6
    2 4
    【二】
    3 5
    2 7
    【三】
    3 -1
    5 -2
    输出样例#1: 复制
    【一】
    y=2x
    【二】
    y=-2x+11
    【三】
    y=-1/2*x+1/2

    说明

    二乘X表示为2x

    二分之一乘X表示为1/2*x

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int x1,x2,y1,y2;
    int fz,fm;
    int gcd(int x,int y){
        return x==0?y:gcd(y%x,x);
    }
    int main(){
        scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
        fz=y1-y2;
        fm=x1-x2;
        int GCD=gcd(fz,fm);
        fz/=GCD;fm/=GCD;
        printf("y=");
        if(fm==1&&fz!=0)    printf("%dx",fz);
        else if(fm!=0&&fz!=0){
            if(fz*fm<0)    printf("-%d/%d*x",abs(fz),abs(fm));
            else if(fz*fm>0)    printf("%d/%d*x",abs(fz),abs(fm));
        }
        if(fm==1){
            if(y1-fz*x1>0)    printf("+%d",y1-fz*x1);
            else if(y1-fz*x1<0)    printf("-%d",y1-fz*x1);
        }
        else{
            int fmm=abs(fm),fzz=fmm*y1;
            if(fz*fm<0){
                fzz+=fz*x1;GCD=gcd(fzz,fmm);
                fzz/=GCD;fmm/=GCD;
                if(fzz!=0)
                    if(fzz*fmm<0)    printf("-%d/%d",abs(fzz),abs(fmm));
                    else if(fzz*fmm>0)    printf("+%d/%d",abs(fzz),abs(fmm));
            }
            else{
                fzz-=fz*x1;GCD=gcd(fzz,fmm);
                fzz/=GCD;fmm/=GCD;
                if(fzz!=0)
                    if(fzz*fmm<0)    printf("-%d/%d",abs(fzz),abs(fmm));
                    else if(fzz*fmm>0)    printf("+%d/%d",abs(fzz),abs(fmm));
            }
        }
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    游戏编程模式之事件队列模式
    游戏编程模式之组件模式
    游戏编程模式之类型对象模式
    游戏编程模式之父类沙盒模式
    游戏编程模式之字节码模式
    游戏人工智能简介
    游戏编程模式之更新模式
    游戏编程模式之游戏循环
    .vimrc配置文件 + gvim 运行 gnome-terminal 完成后等待
    js 批量移除steam游戏 移除用户凭证中免费获取的物品
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7855871.html
Copyright © 2011-2022 走看看