0
点赞
收藏
分享

微信扫一扫

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?

_karen 2022-05-29 阅读 47


题目来源:

https://www.nowcoder.com/practice/fcd30aac9c4f4028b23919a0c649824d?tpId=107&&tqId=33397&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

描述

小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

输入描述:

输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:

输出一个整数,即小乐乐修改后得到的数字。

示例1


输入:

222222

输出:

0

示例2


输入:

123

输出:

101

完成代码:

#include 
#include
int main()
{
int a = 0;
scanf("%d", &a);

int b = 0;//记录a的每一位数字
int sum = 0;
int i = 0;
while (a != 0)
{
//得到a的每一位
b = a % 10;
if (b % 2 == 1)
{
b = 1;
}
else
{
b = 0;
}
sum += b * pow(10, i++);
a /= 10;
}
printf("%d", sum);
return 0;
}

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言

分析题目:

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_02[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_03

 根据这三步走,我们就可以解决这个问题。

首先我们第一步:

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言_04[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_05

 这里我们用9999演示:

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_06[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_07

 代码表示:

  while (a != 0)
{
//得到a的每一位
b = a % 10;

a /= 10;
}

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_08

 第二步:

对拿出的每一位进行转换,题目要求

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_09[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_10

 判断一个数字是奇数还是偶数,我们只需要给这个数字模2,看是否等于0即可,等于0证明是偶数,不是0证明是1。同理如果模二等于1,证明这个数字是奇数,否则则是偶数。

在这里我选择使用后者吧:

代码实现:

//数字转换
if (b % 2 == 1)
{
b = 1;
}
else
{
b = 0;
}

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_11

最后一步:

整合输出,输出的方法用的是分步累加的方法,由于我们取数字的方法是从个位开始取,依次十位,百位,千位........因为我们最后得到的数字要处理的时候我们选择使用给每一位乘上这一位相对应的10的幂次方。

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言_12[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_13

 因此在这里我们调用了pow函数

代码实现:

  sum += b * pow(10, i++);

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_14

我们再看一遍完整代码:

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_15[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言_16

 结果测试:


输入:

222222

输出:

0

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_17


输入:

123

输出:

101

 [C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言_18[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言_19

 最后我们通过提交测试牛客网也是可以过得去的

[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_代码实现_20[C语言练习题 ]把一个数的奇数位变成1,偶数位变成0,怎么写?_C语言_21

总结:

通过本题的练习,我对pow函数进行了复习巩固,也知道了如何将拿出来的每一位数字进行整合输出,这是最关键的。

有兴趣的小伙伴可以自己在电脑上练习练习哦~

(本篇完)


举报

相关推荐

0 条评论