- 307 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 00:08:04 ]
- >>264
スペースないからdecomposite関数だけ。 void decomposite(char *str) { int a, b, c, ab, bc, ca; char *p, *q, *r, temp[256]; for(p=str,ab=0; ab<=65535*2; p++) { ab = ab * 10 + *p - '0'; for(q=p+1,bc=0; bc<=65535*2; q++) { bc = bc * 10 + *q - '0'; for(r=q+1,ca=0; ca<=ab + bc; r++) { ca = ca * 10 + *r - '0'; a = (ab + ca - bc) / 2; b = ab - a; c = ca - a; if(a<0||b<0||c<0||a+b!=ab||b+c!=bc||c+a!=ca) continue; sprintf(temp, "%d%d%d%d%d%d%d%d%d",a,b,c,abs(a-b),abs(b-c),abs(c-a),a*b,b*c,c*a); if(strcmp(r+1, temp)==0) printf("a=%d b=%d c=%d\n", a, b, c); } } } }
|

|