获取余数的反向
Reverse of Getting a Remainder?
我取一个用户输入的数字,加7,然后除以10,取余数,并将该值用作我的新值。我们还假设输入数字总是4个字符长,因此例如,用户将输入1234、1235或9999等。它永远不会大于或小于这个数字。
看起来像这样:
int num;
printf("Input a number: ");
scanf("%d", &num);
num = (num + 7) % 10;
printf("Here is the number after my calculations: %d", num);
现在我需要弄清楚如何做相反的事情。
如果只给我余数,我如何获得输入的原始数字?
有许多输入将给出相同的输出(例如,1000、1010、1020、1030等都将返回7)。因此,无法恢复四位数的原始值。
另一方面,如果您知道输入是个位数,您可以执行以下操作来恢复它:
num = (num + 3) % 10;
(在模10运算中加3等于减去7。)
在其他情况下,你可以恢复数字,但不幸的是,在四位数的普通情况下,这根本不可能。
更具体地说,注释中所说的内容:除以10后的余数是输入的最后一位(最低有效)小数。
让我们假设我得到2的余数。如果输入是四位数字,则意味着输入是xyz2
,其中x
、y
和z
分别是一位数字。我为x
、y
和/或z
填充的任何数字都会给出除法后的余数。
在那之后,我们只剩下颠倒添加7部分的问题。这只是意味着,对于任何给定的xyz2
,我们需要减去7(如果结果为负,则通过加10进行归一化),以获得可能产生该结果的输入。xyz
部分的每一个可能值都将是可能产生该结果的有效输入。该结果缺乏任何数据来表明这些输入中的哪一个用于产生该特定结果。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- 我如何检查 - 并使用 fmod(浮点数)获取余数
- 获取余数的反向