我们今天在数学课上做了这个问题,以便在测验后消磨时间,我想知道我是否可以按照这些方式制作一个程序
所以这个想法是这样的:
取数字123,456,789
左边的第一个数字可以被1整除,好,继续
左边的前两位数可以被2整除,好,继续
左边的前三位数可以被3整除,好,继续
左边的前4位数字不能被4整除,你会得到一个余数,不好,用不同的数字重新开始,或者直到其中一个数字可以被替换(偶数空间可以互换)
这里棘手的部分是你不能两次使用相同的整数
我们可以确定的唯一地方是第五位,所以我们可以看出这个数字看起来像:_ _ _,_ 5 _,_ _ _
我希望程序打印出完全可分的数字,一直到那些地方。我很确定只有一个数字符合这个标准,但我想知道这是否属实,这就是我试图制作这个程序的原因。
我需要帮助的是我应该如何检查每个数字除以其位置是否没有余数,以及如果它不适合如何返回。
编码很新。一切都有帮助
答案 0 :(得分:2)
编程只是描述计算机的一系列步骤
编辑 - 抱歉,重新阅读这个问题,将值存储为长整数然后在循环中增加它会更容易。
在这种情况下,您将必须了解如何通过除以10 ^ 6(或其他)获得前3位数,然后仅取整数部分。
您也需要模数运算符%
答案 1 :(得分:0)
您可以设置一个循环,它使用模数运算符(%)来获取数字的余数。我会设置一个legnth为10的数组,并将数字模数加10并将结果放入数组中(因为你将反向读取数字,你需要将它们反向放入数组中),直到你得到每个数字
然后我会设置一个int(名为maybe value
),并将数组中的第一个值放入此int中。我还要指定另一个int(名为maybe place
)并将其设置为1.定义一个bool(名为maybe flag
)。
然后我会输入一个循环,以便你得到等式if(value % place == 0) flag = 0
。
然后在flag == 1
之前进行循环中断,并在循环之前转到标签,在那里你有一个生成新数字的算法(可能只是添加一个或任何你想要的东西)。如果place == 10
和数字中的最后一个值为0,则在循环内部,您需要打印数字,然后在循环之前跳转到之前的标签,以选择一个新数字。另外,如果flag == 0
和place != 10
(数字还没有失败,但最终还没有结束),请不要忘记,你需要增加value
乘以10,然后在数组中添加下一个数字,以便能够测试下一个地方。而且您还需要每次将place
增加1。
你说你是新人,所以我将包括一些定义: