经验贴SCHOOL 1078

本文深入探讨了解决编程难题的关键步骤,从细致阅读题意开始,逐步列出数学表达式,识别陷阱并巧妙利用数学性质进行求解。通过实例解析,揭示了解题过程中常见的误点及有效策略,旨在帮助读者提升编程思维和问题解决能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于1078,要先理解题意,并动手把题目的式子列出来。这样方便分析。
然后再仔细看题目,与问题,与条件之间的关系。
坑点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];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值