2012年12月24日 星期一

ITSA8

註解部分為原本答案預設一解圍三重跟。
許沁憲表示判斷此根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;
}

沒有留言:

張貼留言