//之前好像少了一个判断
#include <stdio.h>
void reduction(int n)
{
int X, Y ,Z,flag=0;
int g,nY;
int zz[2];
if(n%2==1){
printf("Invalidn\n");
return;
}
n=n/2;
g = n%10;
zz[0] = g;
zz[1] = (g+10)%5;
int zindex;
for(zindex=0;zindex<2;zindex++){ //只需循环两次即可求出解
Z = zz[zindex];
nY = (n-Z)/5-Z;
Y = nY%10;
X = (nY-11*Y)/10;
if(X>0 && Y>=0 && Z>=0){
printf("X=%d,Y=%d,Z=%d\n",X , Y , Z);
flag=1;
}
}
if(flag==0){
printf("Invalidn\n");
}
}
int main()
{
int n;
printf("Input n(n<1000):n");
scanf( "%d",&n);
reduction(n);
return 0;
}
#include <stdio.h>
void reduction(int n)
{
int X, Y ,Z,flag=0;
int g,nY;
int zz[2];
if(n%2==1){
printf("Invalidn\n");
return;
}
n=n/2;
g = n%10;
zz[0] = g;
zz[1] = (g+10)%5;
int zindex;
for(zindex=0;zindex<2;zindex++){ //只需循环两次即可求出解
Z = zz[zindex];
nY = (n-Z)/5-Z;
Y = nY%10;
X = (nY-11*Y)/10;
if(X>0 && Y>=0 && Z>=0){
printf("X=%d,Y=%d,Z=%d\n",X , Y , Z);
flag=1;
}
}
if(flag==0){
printf("Invalidn\n");
}
}
int main()
{
int n;
printf("Input n(n<1000):n");
scanf( "%d",&n);
reduction(n);
return 0;
}