我正在制作一个程序,可以找到0到9之间的所有可能数字组合和4位数窗口。 E.I. 0000 0001 技术 0003 / ECT
现在我试过......
int[] Possibilities = new int[4];
int x = 0, y = 0, z = 0, r = 0;
for ( ; ; )
{
x++;
if (x == 9)
{
x = 0;
y++;
}
if (y ==9)
{
y = 0;
z++;
}
if (z == 9)
{
z = 0;
r++;
}
Possibilities[0] = x;
Possibilities[1] = y;
Possibilities[2] = z;
Possibilities[3] = r;
if (Possibilities[0] == 9 && Possibilities[1] == 9 && Possibilities[2] == 9 & Possibilities[3] == 9)
{
break;
}
Console.Write(Convert.ToString(Possibilities[0]) + Convert.ToString(Possibilities[1]) + Convert.ToString(Possibilities[2]) + Convert.ToString(Possibilities[3]) + " ");
我只是得到一个循环无限的程序,并没有做我想要的。 我相信我的问题是,如果上面的一个是9,我将变量设置为0,但我不确定。
任何帮助都很可爱,谢谢。
答案 0 :(得分:7)
我很困惑,为什么你不能这样做:
for(int i = 0; i < 10000; i++) {
Console.WriteLine(i.ToString("0000"));
}
答案 1 :(得分:2)
你想要的只是0到9999之间的数字(根据你的源代码不包括9999),输出固定为带有前导零的4位数字:
for (int i=0; i < 9999; ++i)
Console.WriteLine("{0:0000}", i);
只是为了好玩,仔细查看源代码会发现它会跳过任何'9'数字。我不知道这是故意还是错误。我认为这是一个错误,但无论如何......如果是故意的,下面的代码片段将跳过任何包含'9'的数字:
for (int i=0; i < 9999; ++i)
{
string s = i.ToString("0000");
if (!s.Contains("9"))
Console.WriteLine(s);
}
(还有其他一些方法可以做到这一点,例如Linq,但让我们保持简单......)