对于1078,要先理解题意,并动手把题目的式子列出来。这样方便分析。
然后再仔细看题目,与问题,与条件之间的关系。
坑点1:题目给的是加密过程,要求我们的是解密。
坑点2:题意歧义,原码指的是该字母本身的原码;
该题的收获呢,就是又学到了一些容易出错的坑点和一个解题的思路。
写出了式子对应题目要求之后发现
if里需要的条件b[i]是未知的,而b[i]又需要由if判断而得到,那么问题就来了,该如何确定b[i];这里我们可以先假设b[i]的一种可能的情况,然后代入该情况下的if语句看是否满足条件,如果满足,则假设成立,若不满足,则假设错误,b[i]为另一种情况。
但是这种是错误的
然后再仔细看题目,与问题,与条件之间的关系。
坑点1:题目给的是加密过程,要求我们的是解密。
坑点2:题意歧义,原码指的是该字母本身的原码;
该题的收获呢,就是又学到了一些容易出错的坑点和一个解题的思路。
写出了式子对应题目要求之后发现
for (i = 1; i < len; i++)
{
b[i] = a[i] - 32 + 96 + 32 + 32 - a[i-1];
if (((b[i] - 32 + a[i-1] - 32))%96 + 32 == a[i]) continue;
else b[i] = a[i] + 32 - a[i-1];
}
if里需要的条件b[i]是未知的,而b[i]又需要由if判断而得到,那么问题就来了,该如何确定b[i];这里我们可以先假设b[i]的一种可能的情况,然后代入该情况下的if语句看是否满足条件,如果满足,则假设成立,若不满足,则假设错误,b[i]为另一种情况。
但是这种是错误的
for (i = 1; i < len; i++)
{
b[i] = a[i] + 32 - a[i-1];
if (((b[i] - 32 + a[i-1] - 32))%96 + 32 == a[i]) continue;
else b[i] = a[i] - 32 + 96 + 32 + 32 - a[i-1];
}