**题目:**809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
首先要看懂题目,809*??=800*??+9*??为乘法分配律,即??可以为任何数,而我们就是要求出这个数。
分析:设??为x
整理题目条件得:
-
1000<=809*x<10000
-
100<=9*x<1000 可以推出更精确的条件:x>11
-
10<=8*x<100 条件4以满足10<=8*x,所以,条件3可改写为x<100
-
10<=x<100 条件2已满足10<=x,所以,条件4可改写为x<100
综上所述,可以写出代码如下:
cpp
#include <stdio.h>
int main()
{
int X=0;
for(int x=12;x<100;x++){
if(1000<=809*x && 809*x<10000 && 100<=9*x && 9*x<1000){
X=x;
break;
}
}
printf("809 * %d = 800 * %d + 9 * %d",X,X,X);
return 0;
}
运行
bash
809 * 12 = 800 * 12 + 9 * 12