首页 > 其他分享 >P9750 [CSP-J 2023] 一元二次方程题目总结

P9750 [CSP-J 2023] 一元二次方程题目总结

时间:2024-08-10 14:50:18浏览次数:7  
标签:输出 return cout P9750 int 一元二次方程 2023 data gcd

根据题面,我们将分为多种情况讨论:

若a为负数,那么将a,b,c全部取反

首先求出data=b^2-4*a*c;

1,data<=0 cout<<”NO”;

否则

带入求跟公式:-b/2a +(-)sqrt(data)

注意::gcd(a,b)有可能为负数,此处应用abs(x)取绝对值

  1. 若开根号data为有理数{
    1. -b为2*a的倍数则直接输出b
    2. 否则输出b/gcd(b,2*a)<<”/”<<2*a/gcd(b,2*a);
    3. 若data为2*a的倍数则输出data
    4. data/gcd(data,2*a)<<”/”<<2*a/gcd(data,2*a);

   gcd(a,b)为求a,b两数的最大公约数,此处可用__gcd(a,b)库函数来替代。

}

1.否则 sqrt(data)为无理数{

  1. d=data中能取平方的值,data/=(d*d)

2.-b为2*a的倍数则直接输出b

3.否则输出b/gcd(b,2*a)<<”/”<<2*a/gcd(b,2*a);

  1. 若d/gcd(d,2*a)==1,则不输出d/gcd(d,2*a)
  2. 否则
  3. d/gcd(d,2*a)<<”*”<<”sqrt(“<<data<<”)”;
  4. 2*a/gcd(d,2*a)==1,则不输出<<”/”2*a/gcd(d,2*a)

否则 输出2*a/gcd(d,2*a)

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long//宏定义
int m,a,b,c,tot,d,t,k;
int gcd(int a,int b){
    if(b==0)return a;
    return gcd(b,a%b);
}
void qu(){
    cin>>a>>b>>c;
    if(a<0)a=-a,b=-b,c=-c;
    d=b*b-4*a*c,k=1;
    if(d<0){
        cout<<"NO"<<"\n";
        return;
    }
    for(int i=2;i*i<=d;i++)
        while(d%(i*i)==0)d/=(i*i),k*=i;
    if(d==|| d==1){
        t=abs(gcd(2*a,-b+k*d));
        cout<<(-b+k*d)/t;
        if((2*a)/t!=1)cout<<"/"<<(2*a)/t;
        cout<<"\n";
        return;
    }
    t=abs(gcd(-b,2*a));
    if(b/t!=0){
        cout<<-b/t;
        if((2*a)/t!=1)cout<<"/"<<(2*a)/t;
        cout<<"+";
    }
    t=abs(gcd(k,2*a));
    if(k/t!=1)cout<<k/t<<"*";
    cout<<"sqrt("<<d<<")";
    if((2*a)/t!=1)cout<<"/"<<(2*a)/t;
    cout<<"\n";
    return;
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);//取消同步
    int t;
    cin>>t>>m;
    while(t--)
        qu();
    return 0;
}

 

题目心得:

在做难题时需要有努力去钻,不能半途而废,看见难题就跳过。

大模拟需要加强,分情况讨论需要思考明白再动笔,题目需理解透彻:宁花5分钟读题也不花1小时调代码。

 

标签:输出,return,cout,P9750,int,一元二次方程,2023,data,gcd
From: https://www.cnblogs.com/qianqian2022/p/18352276

相关文章

  • [JOISC 2023 Day3] Tourism
    虚树大小可以从两个角度进行思考:最小斯坦纳树大小,或者,子树内至少有一个标记点的点的数量减去虚树上边的点的数量。前者的优点是简洁,后者的优点是不依赖dfn序的排序。这道题在利用后者的同时,将赋值看作了颜色段,用树链剖分保证了颜色段总数为\(O(n\logn)\),利用了odt。#inc......
  • 2023 信息安全管理与评估赛项任务书(模块一:任务二)-2
    SW:9,11-15配置使北京公司内网用户通过总公司出口BC访问因特网,分公司内网用户通过分公司出口FW访问因特网,要求总公司核心交换机9口VLAN41业务的用户访问因特网的流量往反数据流经过防火墙在通过BC访问因特网;防火墙untrust1和trust1开启安全防护,参数采用默认参数。注:写这道题......
  • OpenSSH 信息泄漏漏洞 (CVE-2023-51385)【低可信】
    详细信息跳转此页面:https://blog.csdn.net/python10101/article/details/140083056?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-140083056-blog-137541643.235%5Ev43%5Epc_blog_bottom_relevance_base3......
  • Java计算机毕业设计基于android的健身运动app演示录像220239(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着现代生活节奏的加快,健康问题日益受到人们的关注。健身运动作为一种积极的生活方式,不仅能够增强体质、提高免疫力,还能有效缓解工作与生活带来的压......
  • 2024最新版IntelliJ IDEA安装教程(非常详细)从零基础入门到精通,看完这一篇就够了_idea20
    IDEA的使用IDEA的简单介绍IDEA的主要优势IDEA的卸载IDEA的安装第一个程序:HelloWorld结束语IDEA的简单介绍IDEA全称IntelliJIDEA,是Java语言对的集成开发环境,IDEA在业界被认为是公认最好的Java开发工具。IDEA的主要优势✅功能强大①强大的整合能力。比如:GitMavenSp......
  • [CSP-J 2023] 小苹果
    [CSP-J2023]小苹果【官方数据】题目描述小Y的桌子上放着 nn 个苹果从左到右排成一列,编号为从 11 到 nn。小苞是小Y的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第 11 个苹果开始、每隔 22 个苹果拿走 11 个苹果。随后小苞会将剩下......
  • [CSP-S 2023] 密码锁
    题目描述小Y有一把五个拨圈的密码锁。如图所示,每个拨圈上是从 00 到 99 的数字。每个拨圈都是从 00 到 99 的循环,即 99 拨动一个位置后可以变成 00 或 88,因为校园里比较安全,小Y采用的锁车方式是:从正确密码开始,随机转动密码锁仅一次;每次都是以某个幅度仅转......
  • node.js: mysql sequelize in WebStorm 2023.1
    mysql:select*fromtutorials;#CREATETABLEIFNOTEXISTS`tutorials`(`id`INTEGERNOTNULLauto_increment,`title`VARCHAR(255),`description`VARCHAR(255),`published`TINYINT(1),`createdAt`DATETIMENOTNULL,`updatedAt`DATETIMENOTNULL,PRIMA......
  • Java计算机毕业设计个人博客微信小程序演示录像220239(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和智能手机的普及,个人博客作为一种重要的网络表达和信息分享方式,逐渐从传统的PC端向移动端延伸。微信小程序作为一种轻量级......
  • CVE-2023-7130漏洞靶场复现
    CollegeNotesGallery2.0允许通过“/notes/login.php”中的参数‘user’进行SQL注入。利用这个问题可能会使攻击者有机会破坏应用程序,访问或修改数据.抓登录包放sqlmap爆破直接--dump一把梭哈......