如何缩短符合83字节限制的C语言偶数计数函数代码?
C语言数组偶数统计代码压缩方案
问题背景
现有一段用于统计数组中偶数数量的C语言函数,原始代码如下:
int oszthatosag(int t[],int d){int j=0;for(int i=0;d>i;i++)if(t[i]%2==0)j++;return j;}
格式化后的代码长度为86字节,但要求限制在83字节以内(空格、换行符均计入长度),且函数名与输入参数不可修改,同时需要确认t[i]%2==0能否简化。格式化后的参考代码:
int oszthatosag(int t[], int d) { int j = 0; for (int i = 0; d > i; i++) if (t[i] % 2 == 0) j++; return j; }
优化方案
简化判断条件
t[i]%2==0可以替换为!(t[i]&1):利用位运算判断偶数,整数最低位为0时是偶数,t[i]&1取出最低位,取反后即可判断是否为偶数,逻辑完全等价且字节数更少。压缩代码格式
去掉参数列表中不必要的空格(int t[], int d改为int t[],int d),同时适当合并换行减少字节占用。
最终符合要求的代码
紧凑版(长度82字节):
int oszthatosag(int t[],int d){int j=0;for(int i=0;d>i;i++)if(!(t[i]&1))j++;return j;}
保留基础换行的版本(长度83字节):
int oszthatosag(int t[],int d){ int j=0;for(int i=0;d>i;i++)if(!(t[i]&1))j++;return j; }
内容的提问来源于stack exchange,提问作者KillerTiger
相关产品推荐
相关产品推荐

