这是我要查找symmetryNumber的代码。
数据模型应该是
例1)如果我给91,它会打印出19。然后进行比较。
如果与输入的数字不匹配,则将其加91和19,
并输出110。然后一次又一次地执行。
例2)如果我给出2002,它将打印出2002。因为它是对称数字,所以它确实与输入数字匹配。因此输出为2002。
没有数组或任何其他高级技能。
我的作业是使用基本语法和变量来解决此问题。
但是我认为我的逻辑有一些错误。
当我编译它时,它只是在循环,循环,循环
但它只能用一位数字工作。我不确定为什么...
希望你们帮我,谢谢!
ULong Symmetrize (ULong number) {
ULong symmetryNumber = 0;
ULong temp;
ULong quotient;
ULong remainder;
do {
number = number + symmetryNumber;
temp = number;
while (temp = 0) {
quotient = temp/10;
remainder = temp%10;
symmetryNumber = (symmetryNumber * 10) + remainder;
temp = quotient;
}
} while (number != symmetryNumber);
return symmetryNumber;
}
最佳答案
这是代码的主要问题之一:
while (temp = 0) {
这是一项任务。
如果您使用左侧的文字写成:
while (0 = temp) {
然后,编译器将捕获该错误。
无论如何,比较应为:
while (temp == 0) { // < note the '==' rather than just '='
建议更正该陈述
发布的代码的第二个主要问题是此行:
} while (number != symmetryNumber);
假设'number'是25,则s ... number将是52,而25将永远不等于52,因此循环将永远继续。
这行:
number = number + symmetryNumber;
绝对没用,因为值+ 0仍然是该值。
建议删除该声明
外部的do ... while语句除了使其成为无限循环外没有其他作用。
建议去除外圈