0

我想知道如何存储从堆栈中弹出要存储的字符或整数,以便我可以将它与原始字符串或 int 值进行比较。

例如 :

n = 1221;
n = n / 1000; // so that i get the last digit in this case 1 and dividing the remainder 
              // further each time by 100, 10 and 1

如果我将得到的每个数字存储在一个变量中——例如,假设我将从上述除法得到的 1 存储在一个名为 s 的变量中,然后将其压入堆栈。在此之后,我将值弹出;当我这样做时,如何检查天气是否等于原始数字?我可以用 if 条件检查它,例如如果我有 3 个

(i == p && check for other two numbers)

但我不想检查任何尺码。

请不要发送有关如何执行此操作的源代码,只需给我一些片段或一些提示,谢谢。另外请让我知道您是如何提出解决方案的。

谢谢!

4

2 回答 2

2

不要发送有关如何操作的源代码

好的 ;)

给我一些片段或提示

递归

当你给出解决方案时,让我知道你是如何提出解决方案的,当你​​看到问题时,你已经看过这样的程序或知道算法或想出了解决方案。谢谢

我做这个太久了,不记得我第一次看到它的地方=\

于 2012-08-21T22:49:44.257 回答
0

您可以使用递归来解决问题,就像 Justin 提到的那样。开始递归后,您将用适当的除数除数(1000,100,10,1),将商存储在堆栈中。你这样做到最后。到达“单位”位置后,存储单位数字,然后开始从堆栈中弹出。有一个 if-else 阶梯从递归函数返回一个整数。梯子会有左移后返回int和返回移位后的变量的条件。您可以在主要功能中进行检查。

1             ->1221(left shift 122 OR with 1)
  2          ->122(left shift 12 OR with 2)
    2       ->12(left shift 1 OR with 2)
      1---->1

希望这可以帮助。谢谢阿迪亚

于 2012-08-22T00:38:52.723 回答