练一练思维缜密程度。有程式xyz+yzz=532,其中x、y、z都是整数,用c++编写一个程序,求x、y、z分别代表什么数字

解题思路:

由题意,能得出方程组:

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;
}


佳都新太的一道笔试题。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值