讨论 / 第2题
Mato完整版 2009-07-04 20:46:00
点我顶贴 收藏 删除
“初三有一章唤作“二次函数”,不光解解麻烦,还……”

非要上初三才能做?

这明显是害我们。

#1 飞雪天涯@2009-07-04 20:02:00
回复 删除
你没上初三???
#2 Mato完整版@2009-07-04 20:23:00
回复 删除
骗了40分
#3 chengaoyuan@2009-07-04 20:32:00
回复 删除
这题真无语啊...

整个题目里没说过"整数"二字,都不知道该怎么办.

"注意,不要化简"这句比较窘

记得以前有道题叫你判断一个数是否"可能"是素数..

#4 飞雪天涯@2009-07-04 20:46:00
回复 删除
也骗到了40~

/*

比赛(Test):查看题目 Show Problem

赛题题目:函数的交点

所属比赛:第3次期中风波模拟赛

问题编号:360 [提交该赛题]

描述: 【问题背景】

初三有一章唤作“二次函数”,不光解解麻烦,还……

【问题描述】

对于一个二次函数Y=AX^2+BX+C,判断它与Y=K是否有交点。若有,输出两点的横坐标(从左到右输出两个横坐标,)。若没有,则输出 “NO ANSWER”(不包括引号)。

注意,如果两个交点横坐标的差的绝对值小于0.001时,就认为这两个交点的横坐标相等,即AX^2+BX+C=K有两个相等的实数根,此时先输出(A+SQRT(B))/C ,再输出 (A-SQRT(B))/C

我们规定,输出的表达式为 A+|B/C 或者 A-|B/C 表示(A+SQRT(B))/C或(A-SQRT(B))/C (A,C可为负数,A可为0,C不可为0,B必大于或等于0)。

注意,不要化简,如 -4-|4/2 不能表示成 -2-|1/1 ,虽然-4-|4/2 = -2-|1/1 。

输入格式: 四个数:A,B,C,K (-200000≤A,B,C,K≤200000),分别表示函数Y=AX^2+BX+C的三个系数A,B,C和函数Y=K中常数K的值。

输出格式: 如果两个函数有交点,那么输出就有两行:分别为两个交点的横坐标,用上面所述的方法输出。否则,就输出一行“NO ANSWER”。

输入文件: 直接输入即可

输出文件: 直接输出即可 注意,不要在最后输出空行或空格!

样例输入: 【输入样例1】

1 2 1 0

【输入样例2】

1 -2 0 -1

【输入样例3】

1 2 3 0

样例输出: 【输出样例1】

-2+|0/2

-2-|0/2

【输出样例2】

2+|0/2

2-|0/2

【输出样例3】

NO ANSWER

【样例说明】

X^2+2X+1=0中,B^2-4AC=0,所以它的两个根相等,所以根的输出顺序为(-2+SQRT(0))/2 (-2-SQRT(0))/2

X^2-2X=-1中,B^2-4AC=0,所以它的两个根相等,所以根的输出顺序为(2+SQRT(0))/2 (2-SQRT(0))/2

X^2+2X+3=0中,B^2-4AC=-8<0,所以它没有实数根,所以只要输出“NO ANSWER”即可

*/

#include<iostream>

using namespace std;

int main (void){

int a,b,c,k;

cin>>a>>b>>c>>k;

c-=k;

double aa,bb,cc;

aa=(double)a;

bb=(double)b;

cc=(double)c;

double delta=b*b-4*a*c;

if (delta<=-0.001) cout<<"NO ANSWER";

else if (delta<0.001){

cout<<-b<<"+|0/"<<2*a;

cout<<endl;

cout<<-b<<"-|0/"<<2*a;

}

else{

cout<<-b<<"+|"<<delta<<"/"<<2*a;

cout<<endl;

cout<<-b<<"-|"<<delta<<"/"<<2*a;

}

// while (1);

return 0;

}

查看更多回复
提交回复