許沁憲表示判斷此根3次方和c相同則為重跟,不同則為無解。
#include <stdio.h>
int main(){
int a,b,c,i,j;
while(scanf("%d %d %d",&a,&b,&c)==3){
int ans[3],nc=0;
ans[0]=ans[1]=ans[2]=0;
for (i=-1000;i<=1000;i++){
if ((i*i*i+a*i*i+b*i+c)==0)
ans[nc++]=-i;
}
/*
if(nc==1){
ans[2]=ans[1]=ans[0];
}
else if(nc==2&&ans[2]>ans[1]){
int tmp;
tmp=ans[2],ans[2]=ans[1],ans[1]=tmp;
}*/
for(i=0;i<3;i++)
for(j=i;j<3;j++){
int t;
if(ans[i]>ans[j]) t=ans[i],ans[i]=ans[j],ans[j]=t;
}
if(nc)
printf("%d %d %d\n",ans[0],ans[1],ans[2]);
else
printf("no solution\n");
}
return 0;
}
沒有留言:
張貼留言