奥赛 代数小明家的电话号码原为6位数,第一次升位是在首位和第二位号码之间加上数字8,成为一个7位数的电话号码;第二次升位是在首位号码前加上数字2,成为一个8位数的电话号码.小明发现
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 03:44:21
奥赛 代数小明家的电话号码原为6位数,第一次升位是在首位和第二位号码之间加上数字8,成为一个7位数的电话号码;第二次升位是在首位号码前加上数字2,成为一个8位数的电话号码.小明发现
奥赛 代数
小明家的电话号码原为6位数,第一次升位是在首位和第二位号码之间加上数字8,成为一个7位数的电话号码;第二次升位是在首位号码前加上数字2,成为一个8位数的电话号码.小明发现,两次升位后的电话号码的8位数,恰是原电话号码的6位数的81倍,求小明家原来的电话号码
奥赛 代数小明家的电话号码原为6位数,第一次升位是在首位和第二位号码之间加上数字8,成为一个7位数的电话号码;第二次升位是在首位号码前加上数字2,成为一个8位数的电话号码.小明发现
设原数为x1x2x3x4x5x6,则新数为2x18x2x3x4x5x6
因为是原数的81倍,所以先让新数减去原数
=2x1(8-x1)00000,这个数就是原数的80倍,
那么2x1(8-x1)0000就是原数的8倍,
然后列除式,除数为8,被除数为2x1(8-x1)0000,商是x1x2x3x4x5x6,则我们知道粗略判断x1是2和3,可以仔细判断后知道只能是2----3代入计算会导致除数不够大,第一位为23-24<0是错误的----这样就很好继续推断出
x2=8
x3=2
x4=5
x5=0
x6=0
这样我们就知道原电话号码是282500
可代回原式计算知道这个答案是正确的.
#include
void main()
{
int x,y;
for(x=100000;x<999999;x++)
{
y=20000000+x%100000*1000000+x+(8-x%100000)*100000;
if(y==x*81)
{
printf("%d",x);
break;
}
}
}
我用C语言试了下 找不到答案,是不是给错了数据了
NI
解:
设原电话号码为ABCDEF
则第一次升位后变成A8BCDEF
第二次升位后变成2A8BCDEF
因现号码为原号码的81倍,则有:
2*10000000+A*1000000+800000+B*10000+C*1000+D*100+E*10+F=81*(A*100000+B*10000+C*1000+D*100+E*10+F)
由整式得出,
全部展开
解:
设原电话号码为ABCDEF
则第一次升位后变成A8BCDEF
第二次升位后变成2A8BCDEF
因现号码为原号码的81倍,则有:
2*10000000+A*1000000+800000+B*10000+C*1000+D*100+E*10+F=81*(A*100000+B*10000+C*1000+D*100+E*10+F)
由整式得出,
另把81分成80+1
两分简化为
2*10000000+A*1000000+8*100000=80*(A*100000+B*10000+C*1000+D*100+E*10+F)+A*100000
E=0
F=0
代入有:
710A+80B+8C+0.8D=2080
取D=5
则有710A+80B+8C=2076
取C=2
A=2
B=8
电话号码为282500
收起