自我介绍:一个脑子不好的大一学生,c语言接触还没到半年,若涉及到效率等问题,各位都可以在评论区提出见解,谢谢啦。
该账号介绍:此帐号会发布游戏(目前还只会简单小游戏),算法,基础知识等内容。
文章特点:会将重要步骤和易错点在代码中用注释标示(方便各位理解和定位)
重点:
1.每进行完一次数据替换(若该位为偶数,则变为0,反之为1),位数加一,因此要设置一个n来控制位数的增加(通过不断*=10来控制);
2.需要设置一个变量来记录最后的数据,设置为m,每当数据末尾的数为偶数时,m加0*n,
否则为1*n。
3.用while来控制a的最后一位和n
题目链接:小乐乐改数字_牛客题霸_牛客网 (nowcoder.com)
//BC45 小乐乐改数字(牛客)int main()
{int a;scanf("%d", &a);int m = 0,n=1;while (a){if (a % 2 == 0)m += 0*n;elsem += 1*n;a /= 10;n *= 10;}if (a % 2 == 0)m += 0*n;elsem += 1*n;printf("%d\n", m);return 0;
}