自我介绍:一个脑子不好的大一学生,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;
else
m += 1*n;
a /= 10;
n *= 10;
}
if (a % 2 == 0)
m += 0*n;
else
m += 1*n;
printf("%d\n", m);
return 0;
}