解题思路:
由题意,能得出方程组:
x+y = 5;
y+z = 3;
2z = 2; (1)
由(1)得z=1或6。一种是进位的情况,一种是不进位的情况,下面对两种情况进行分析。
一、如果不考虑进位的情况,则分析可得
z = 1;
y = 2;
x = 3;
二、考虑进位的情况,则上面方程组应进行相应的变化:
情况1:x+y = 4;(不是5是因为十位相加进1)
y+z = 12;(不是13是因为个位数相加进1)
2z = 12;
得: z = 6;
y = 6;
x = -2;
这种情况应排除,因为x=-2意味着两个数不再是相加,而是相减,则个位数的z相加也就不再适应。
情况2:x+y = 5;
y+z = 2;
2z = 12;
得: z = 6;
y = -4;
x = 9;
这种情况应排除,同情况1。
综上所述,得x、y、z的最终取值是:x=3,y=2,z=1;
程序设计如下:
#include <iostream>
using namespace std;
int main()
{
int x,y,z;
int num1,num2;
for(x=0; x<=5; x++)
{
for(y=0; y<=5; y++)
{
z = 1;
num1 = x*100 + y*10 + z;
num2 = y*100 + z*10 +z;
if((num1 + num2) == 532)
cout<<"x="<<x<<",y="<<y<<",z="<<z<<endl;
//下面这几行可以不用,因为经过分析可知其不存在值
z = 6;
num1 = x*100 + y*10 + z;
num2 = y*100 + z*10 +z;
if((num1 + num2) == 532)
cout<<"x="<<x<<",y="<<y<<",z="<<z<<endl;
}
}
return 0;
}
佳都新太的一道笔试题。