【发布时间】:2012-10-17 19:58:39
【问题描述】:
我有一个编程任务,我需要加密一个 4 位整数,由用户输入。我已将 int 拆分为四个单独的值,并且加密和解密功能起作用。我的问题是当我将四个单独的整数重新组合在一起时,一些数字加密为零(例如 in:1234 out:0189),我想将输出存储到一个 int 中以用于其他函数。
现在我有一个半生不熟的解决方案,如果第一个 int 为 0,则首先打印 0。
void joinInt(){
if(int1 == 0) {cout << 0;}
joined = int1 * 1000;
joined += int2 * 100;
joined += int3 * 10;
joined += int4;
cout << joined << endl;
}
我的目标是返回joined(前导零),而不仅仅是在函数中打印它。
【问题讨论】:
-
这些是否会延续到 int 中?
-
我认为有可能进行加密,这会导致多个前导零,例如 0012 或 0009 甚至可能是 0000。您只处理第一个数字的情况为零。请看下面我的建议,以了解可以处理这些情况的函数。
-
自然状态下的 int 不带前导零(技术上不正确,但为了论证,假设它不带前导零)。
1是一个整数。10是一个整数。0010是整数的表示。这不是您需要更改的 int,而是您打印它的方式。 -
@RichardChambers 我完全错过了这种可能性。你给出的例子看起来很完美,它有点超出我的范围,但我要研究你做了什么。谢谢!
-
@ThomasMcLeod 请注意the homework tag is now being phased out and must no longer be used。
标签: c++