C#编程题:某四位数与其各个位上的数字只和等于2001,求该四位数是几?

完整的编程代码。
Nb!
===下面是我做的答案=====
private void Form1_Load(object sender, EventArgs e)
{
int m = 9999;
for (int i = 1000; i <= m; i++)
{
int b1 = i / 1000;
int b2 = (i - b1 * 1000) / 100;
int b3 = (i - b1 * 1000 - b2 * 100) / 10;
int b4 = (i - b1 * 1000 - b2 * 100 - b3 * 10) / 1;
int sum = (b1 + b2 + b3 + b4) + i;
if (sum==2001)
{
this.textBox1.Text = i.ToString();
}

第1个回答  2012-04-09
分析:1、千位数只能是1;
2、百位只能是9(原因是:每一位的数值最大是9,千位是1,总和最大是28,则该四位数最小也是1973;

十位数从7~9,个位数从0~9,遍历,以找出该数。即可。

static void Main(string[] args)
{
int c, d;
bool haveFound=false;
for (c = 7; c <= 9; c++)
{
for (d = 0; d <= 9; d++)
{
if ( 1900 + c * 10 + d +10 + c + d == 2001)
{
Console.WriteLine("数字是:19{1}{2}", c, d);
break;
haveFound=true;
}
}
if(haveFound)
break;
}

Console.ReadKey();
}

=====================结果==============
数字是:1977
第2个回答  2012-04-09
分析:千位数只能是1,所以循环穷举百十个位数。

static void Main(string[] args)
{
int b, c, d;
for ( b = 0; b <= 9; b++)
{
for (c = 0; c <= 9; c++)
{
for (d = 0; d <= 9; d++)
{
if ( 1000 + b * 100 + c * 10 + d +1 + b + c + d == 2001)
Console.WriteLine("数字是:1{0}{1}{2}", b, c, d);
}
}
}
Console.ReadKey();
}

=====================结果==============
数字是:1977本回答被提问者采纳
第3个回答  2020-11-05
c++)
{
for
(d
=
0:千位数只能是1分析,
c,所以循环穷举百十个位数;=
9;数字是,
d);
d++)
{
if
(
1000
+
b
*
100
+
c
*
10
+
d
+1
+
b
+
c
+
d
==
2001)
Console.ReadKey();;
c
<:1{0}{1}{2}"
}
}
}
Console;
b
<.WriteLine(",
d。
static
void
Main(string[]
args)
{
int
b;
for
(
b
=
0,
b;=
9;
}
=====================结果==============
数字是;
b++)
{
for
(c
=
0;=
9;
d
<,
c
相似回答