用2012减去一个四位数的差,正好等于将这个四位数各个数位数字相加的和,那么有几个这样的四位数?
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/03 15:10:28
用2012减去一个四位数的差,正好等于将这个四位数各个数位数字相加的和,那么有几个这样的四位数?
用2012减去一个四位数的差,正好等于将这个四位数各个数位数字相加的和,那么有几个这样的四位数?
用2012减去一个四位数的差,正好等于将这个四位数各个数位数字相加的和,那么有几个这样的四位数?
四位数的各位数字相加之和,最大为36,最小为1
2012-36 = 1976
2012-1 = 2011
那么这个四位数应该在 1976 与 2011 之间,其高两位数只能是19或20
设低两位数分别是X和Y(X与Y都是一位的整数),则
2012-1900-10X-Y = 1+9+X+Y
即 11X + 2Y = 102
11X +2*9 ≥ 102
11X ≥ 84
X ≥ 84/11 ≥ 8
当 X=8 时,11*8 + 2Y = 102 ,Y = 7
当 X=9 时,11*9 + 2Y = 102 ,Y = 1.5 ,Y不是整数舍去.
同样的当高两位数是20时:
2012-2000-10X-Y = 2+X+Y
11X + 2Y = 10
此时 X 只能等于0 ,而 Y = 5.
所以,答案就是 1987 和 2005
设此四位数为1000a+100b+10c+d (a为1~9整数,b、c、d为0~9正整数)
2012-(1000a+100b+10c+d)=a+b+c+d
整理,得
1001a+101b+11c+2d=2012
a为1~9整数,又2012<3000,因此a只能为1或2
a=1时,101b+11c+2d=1011
11c+2d≤11×9+2×9=11...
全部展开
设此四位数为1000a+100b+10c+d (a为1~9整数,b、c、d为0~9正整数)
2012-(1000a+100b+10c+d)=a+b+c+d
整理,得
1001a+101b+11c+2d=2012
a为1~9整数,又2012<3000,因此a只能为1或2
a=1时,101b+11c+2d=1011
11c+2d≤11×9+2×9=117 1011-(11c+2d)≥894,b只能为9
11c+2d=102
c=9时,d=3/2(舍去) c=8时,d=7 c≤7时,11c+2d≤2×9+77=95<102
综上,得a=1时,b=9 c=8 d=7
a=2时,101b+11c+2d=10
b≥1时,101b≥101>10,因此只有b=0
c≥1时,11c≥11>10,因此只有c=0
2d=10 d=5
综上,得a=2时,b=0 c=0 d=5
综上,得仅有两个满足题意的四位数:1987,2005
收起
结果是1987
这个四位数比 2012 小,所以千位是2或者1,设其百位是a,十位是b,个位是c
如果千位是 2,则百位是 a=0,那么
2012 - 2000-10b-c = 2+0+b+c
即 11b+2c = 10
可得其非负整数解为 b=0,c=5
所以这个四位数可能是 2005
如果千位是 1,则
2012 - 10...
全部展开
这个四位数比 2012 小,所以千位是2或者1,设其百位是a,十位是b,个位是c
如果千位是 2,则百位是 a=0,那么
2012 - 2000-10b-c = 2+0+b+c
即 11b+2c = 10
可得其非负整数解为 b=0,c=5
所以这个四位数可能是 2005
如果千位是 1,则
2012 - 1000 -100a-10b-c = 1+a+b+c
即 101a+11b+2c = 1011
得 a = (1011-11b-2c) /101
b,c最大取9,所以 a ≥ 894 / 101 (> 8)
所以,a 只能取 9,这时 909+11b+2c = 1011
即 11b+2c = 102
b = (102-2c)/11 ≥ 84/11 ( >7),即 b可以是 8或者9
当 b=9 时,c = (102-11b)/2 = 3/2 不是整数,无意义
当 b=8 时,c = (102-11b)/2 = 7
所以,当千位数是1时,这个数只能是 1987
所以符合题意的四位数有二个,就是 2005和1987
~ 满意请采纳,不清楚请追问。
--------------------
~ 梳理知识,帮助别人,愉悦自己。
~ “数理无限”团队欢迎你
~ http://zhidao.baidu.com/team/view/%CA%FD%C0%ED%CE%DE%CF%DE
收起
总共有两个
1987
2005
package strTest;
public class StrTest {
/**
* 2012 - x(abcd) = y;
* a+b+c+d = y
*/
public static void main(String args[]){<...
全部展开
总共有两个
1987
2005
package strTest;
public class StrTest {
/**
* 2012 - x(abcd) = y;
* a+b+c+d = y
*/
public static void main(String args[]){
for (int i = 1000; i <= 2012; i++) {
int x = 2012 - i;
int a= i%10;
int b= (i/10)%10;
int c= (i/100)%10;
int d= (i/1000)%10;
if(x==(a+b+c+d)){
System.out.println(i);
}
}
}
}
收起